将Silverlight 3与RIA一起使用:LoadOperation.Completed事件与通过DomainContext.Load方法使用回调之间的区别是什么?两者都异步触发,并且都提供对LoadOperation的访问。何时/为什么我会使用一个而不是另一个?
谢谢: - )
答案 0 :(得分:2)
没有区别;这两个选项提供灵活性。很多时候,回调就足够了,但如果从方法返回LoadOperation,调用者就可以选择订阅。
请注意,即使在订阅Completed事件之前Load已完成,您的处理程序仍会被调用。我们保证将调用该活动的每个订阅者。
答案 1 :(得分:2)
同意功能没有区别。这是关于编码风格。如果在完成查询后我必须完成的工作很简单,比如将数据绑定到网格,我喜欢使用以下语法来内联完成的代码,而不是定义一个单独的方法。
context.Load<EntityType>(query).Completed += (lo, args) =>
{
myGrid.ItemsSource = ((LoadOperation) lo).Entities;
}
这具有同步代码的清晰度,但是大括号内的代码实际上是异步执行的。
祝你好运!