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

时间:2011-11-22 11:14:23

标签: c# silverlight windows-phone-7

我动态创建了TextBox并使用以下方法将Tap事件处理程序附加到它:

control.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(OnClick1);

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

control.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(OnClick2);

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

1 个答案:

答案 0 :(得分:13)

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

control.Tap -= OnClick1;
control.Tap += OnClick2;

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