2011-11-25 135 views
0

後,我有一個foreach循環,低於:Silverlight的 - 停止查詢完成事件執行一次

foreach (var rec in lstPRSCRPT) 
      { 
       var OrderItemQuery = GV.dbContext.Load(GV.dbContext.GetOrdritemsQuery (rec.PresNo)); 
       OrderItemQuery.Completed += new EventHandler(OrderItemQuery_Completed);    
      }  

在OrderItemQuery_Completed情況下,爲每個呼叫回來,我有一些計算髮現,如果達到certian條件。如果是這樣,我不想再收到任何進一步的OrderItemQuery_Completed回調。有沒有辦法可以做到這一點?有什麼辦法可以阻止OrderItemQuery_Completed被觸發。

我unscubscirbed事件,我得到一個eror如圖圖:

enter image description here

回答

2

你可以從這個事件的處理程序是這樣取消:

private void OrderItemQuery_Completed(object sender, ...) 
{ 
    var query = (OrderItemsQuery)sender; 
    query.Completed -= OrderItemQuery_Completed; 
    .... 
} 
+0

我unscubscirbed事件和我得到一個錯誤,如圖片 – sony

+0

@sony - 用代碼中的OrderItemQuery變量替換它,也就是說這個下劃線的東西必須是查詢對象類型的名稱(它具有'Completed'事件)。 –

+0

類似於aType = OrderItemQuery.GetType(); var query =(aType)sender; query.Completed - = OrderItemQuery_Completed; – sony