2010-09-03 102 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已被分配後。