我有一个构造函数中的控件
_myWebService.ForwardMessageCompleted + = new EventHandler(OnForwardMessageCompleted);
private void OnForwardMessageCompleted(object sender, AsyncCompletedEventArgs e)
{
activity.IsActive = false;
if (e.Error == null)
{
RadWindow.Alert("The message has been forwarded");
}
}
控件具有消息列表,用户可以将其转发给其他用户。 问题是,用户多次打开此控件,每次创建处理程序时都会将其添加到
_myWebService.ForwardMessageCompleted
如何删除此事件的处理?
答案 0 :(得分:2)
因为您正在控件的构造函数中连接外部事件处理程序,所以该事件侦听器也充当指向控件的指针(因此它不会被销毁并且代码会为控件的每个实例调用)。
您希望捕获控件的Unloaded事件并将以下内容添加到该处理程序(以断开事件侦听器):
_myWebService.ForwardMessageCompleted -= OnForwardMessageCompleted;