Silverlight-执行一次后停止查询完成事件
我有一个foreach循环,如下所示: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 (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
的前面。