none
自定义事件总是为null, 为什么呢? RRS feed

  • 问题

  • 自定义事件myEvent总是=null

    代码如下:

    namespace myTest { public class MyEventArgs : EventArgs { public readonly DateTime dateTime; public MyEventArgs(DateTime dt) { this.dateTime = dt; } } public delegate void MyEvent(object sender, MyEventArgs e); /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class TestPage : Page { public event MyEvent myEvent; public TestPage() { this.InitializeComponent(); } /// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { } private void itemGridView_ItemClick_1(object sender, ItemClickEventArgs e) { if (myEvent != null) { myEvent(this, new MyEventArgs(DateTime.Now)); } } } }


    2012年8月16日 10:51

答案

  • 为什么不用+=符号来注册呢?
    • 已标记为答案 donarlee 2012年8月17日 1:58
    2012年8月16日 11:06
  • 我知道问题所在了, 我这里写的是派发消息, 在需要处理消息的地方还没有写消息监听的代码, 所以这个myEvent并没有实例化, 导致了这个myEvent总是null

    • 已标记为答案 donarlee 2012年8月17日 1:58
    2012年8月17日 1:58

全部回复

  • 为什么不用+=符号来注册呢?
    • 已标记为答案 donarlee 2012年8月17日 1:58
    2012年8月16日 11:06
  • 我在网上参考的例子是这样用的, myEvent总是=null

    private void itemGridView_ItemClick_1(object sender, ItemClickEventArgs e)
    {
           
               
    if (myEvent != null)
               
    {
                    myEvent
    (this, new MyEventArgs(DateTime.Now));
               
    }
     
    }

    2012年8月17日 1:10
  • 我知道问题所在了, 我这里写的是派发消息, 在需要处理消息的地方还没有写消息监听的代码, 所以这个myEvent并没有实例化, 导致了这个myEvent总是null

    • 已标记为答案 donarlee 2012年8月17日 1:58
    2012年8月17日 1:58