2010-09-03 84 views
1

Newb here。Silverlight 4:事件不发射?

我正在从Silverlight页面的代码隐藏实例化下面的类。

我想了解为什么脱离的线程(加载操作和工作人员)在完成的事件触发时成功地引发类上的Selected事件,但方法调用中的Select事件(在本例中为constructer )本身总是空的,因此不能?

有没有办法在方法调用本身上引发事件?

谢谢!

public EventTest() 
    { 
     if (1 != 1) //for test purposes 
     { 
      IPWorxDomainContext ctx = new IPWorxDomainContext(); 
      loadOperation = ctx.Load(ctx.GetTradeMarkRegistryListingsQuery()); 
      loadOperation.Completed += new EventHandler(loadOperation_Completed); 
     } 
     else 
     { 
      if (Selected != null) //always null 
      { 
       Selected(null, new EventArgs()); 
      } 

      worker = new BackgroundWorker(); 
      worker.DoWork += new DoWorkEventHandler(worker_DoWork); 
      worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); 
      worker.RunWorkerAsync(); 
     } 
    } 

回答

1

如果您检查正在调用EventTest你会发现Selected事件被调用之后被分配的代码。因此在EventTest期间事件为空。完成的事件发生在EventTest已完成并且SelectedEvent已被分配后。