开发与WCF服务通信的Silverlight应用程序。阻止多次连接MVVM ServiceAgent事件
MVVM - > ServiceAgent - > WCF服务
所以在我的ViewModel我有:
ServiceAgent.SearchExternalPatients(Name, (s, e) =>
{
ExternalPatients = e.Result;
});
在我的服务代理
我有:
public void SearchExternalPatients(string name, EventHandler<SearchPatientExternalCompletedEventArgs> callback)
{
_proxy.SearchPatientExternalCompleted += callback;
_proxy.SearchPatientExternalAsync(name);
}
的问题是,每次我点击搜索按钮它再次挂钩事件,当我得到结果回来我收到它几次。
在MVVM ServiceAgent模式中解除这些事件的最佳方式是什么?
如果我放置一个“_proxy.SearchPatientExternalCompleted - =回调;”之前的“_proxy.SearchPatientExternalCompleted + =回调;”解决了问题。但这是最好的方式吗? – BBurke 2011-05-11 05:30:12
只要回调是每次调用的相同委托,它很可能会工作。但是,你想依赖那个巧合吗? – 2011-05-11 07:27:39