Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight-执行一次后停止查询完成事件_Silverlight - Fatal编程技术网

Silverlight-执行一次后停止查询完成事件

Silverlight-执行一次后停止查询完成事件,silverlight,Silverlight,我有一个foreach循环,如下所示: foreach (var rec in lstPRSCRPT) { var OrderItemQuery = GV.dbContext.Load(GV.dbContext.GetOrdritemsQuery (rec.PresNo)); OrderItemQuery.Completed += new EventHandler(OrderItemQuery_Completed);

我有一个foreach循环,如下所示:

 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\u Completed的回电。我有办法做到吗?是否有任何方法可以阻止触发OrderItemQuery_Completed

我取消了该活动的赞助,并获得了如图所示的eror:


您可以在处理程序中取消订阅此事件,如下所示:

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

@sony-将其替换为代码中的
OrderItemQuery
变量的类型,即,此带下划线的内容必须是查询对象类型的名称(具有
已完成的
事件)。类似于aType=OrderItemQuery.GetType();var query=(aType)发送方;query.Completed-=OrderItemQuery\u Completed@索尼-不,只需将带下划线的类型名称替换为查询对象类型的实际名称。对不起,我不明白,我如何获得它的名称?thanks@sony-只需将鼠标悬停在您在问题中发布的代码中的
OrderItemQuery
变量之前的
var
关键字上。在工具提示中,您将看到类型的名称。或者查看从
GV.dbContext.Load
方法返回的类型。复制类型名称并将其放在
OrderItemsQuery
的前面。