在DomainContext.Load()中的LoadOperation.Completed与回调

时间:2010-03-10 14:39:17

标签: silverlight-3.0 wcf-ria-services

将Silverlight 3与RIA一起使用:LoadOperation.Completed事件与通过DomainContext.Load方法使用回调之间的区别是什么?两者都异步触发,并且都提供对LoadOperation的访问。何时/为什么我会使用一个而不是另一个?

谢谢: - )

2 个答案:

答案 0 :(得分:2)

没有区别;这两个选项提供灵活性。很多时候,回调就足够了,但如果从方法返回LoadOperation,调用者就可以选择订阅。

请注意,即使在订阅Completed事件之前Load已完成,您的处理程序仍会被调用。我们保证将调用该活动的每个订阅者。

答案 1 :(得分:2)

同意功能没有区别。这是关于编码风格。如果在完成查询后我必须完成的工作很简单,比如将数据绑定到网格,我喜欢使用以下语法来内联完成的代码,而不是定义一个单独的方法。

context.Load<EntityType>(query).Completed += (lo, args) =>
{
   myGrid.ItemsSource = ((LoadOperation) lo).Entities;
}

这具有同步代码的清晰度,但是大括号内的代码实际上是异步执行的。

祝你好运!