更改已附加的事件处理程序运行

Raj*_*nar 5 c# silverlight windows-phone-7

我使用以下方法TextBox动态创建了一个Tap事件处理程序:

control.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(OnClick1);
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,现在我想更改事件处理程序以指向一些不同的方法.我试过了:

control.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(OnClick2);
Run Code Online (Sandbox Code Playgroud)

但是,它仍指向第一个事件处理程序.即OnClick1.我该怎么做才能说明问题OnClick2?还有一种方法可以完全删除此事件处理程序吗?

Jon*_*eet 13

您需要先删除第一个处理程序:

control.Tap -= OnClick1;
control.Tap += OnClick2;
Run Code Online (Sandbox Code Playgroud)

(注意方法组转换的使用相当简单,而不是显式创建事件处理程序.它做同样的事情,但更具可读性.)