2011-11-25 139 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