Button.Click事件

时间:2012-03-10 21:15:50

标签: c# windows-phone-7

我有滑块功能:

private void slider_change(object sender, RoutedPropertyChangedEventArgs<double> e)
    {
        if (e.NewValue < 2)
        {
            this.button1.Content = "A";
            this.button1.Click += aa;
        }
        if (e.NewValue < 6 && e.NewValue > 4)
        {
            this.button1.Content = "B";
            this.button1.Click += bb;
        }
        if (e.NewValue < 10 && e.NewValue > 8)
        {
            this.button1.Content = "C";
            this.button1.Click += cc;
        }
        if (e.NewValue < 4 && e.NewValue > 2)
        {
            this.button1.Content = "D";
            this.button1.Click += dd;
        }
        if (e.NewValue < 8 && e.NewValue > 6)
        {
            this.button1.Content = "E";
            this.button1.Click += ee;
        }
    }

所以,我有一个按钮和5个不同的功能。如何删除button1.click的前一个处理程序?

3 个答案:

答案 0 :(得分:0)

而不是根据滑块值设置不同的处理程序,可能更容易挂钩单个按钮单击处理程序,然后根据滑块的当前值更改该处理程序中发生的事情。这显然会使订阅和取消订阅click事件变得更加简单,同时仍允许您灵活地指定您的程序对不同滑块值的作用。

答案 1 :(得分:0)

this.button1.Click -= ee;

这将取消引用“ee”-function

但我更喜欢dlev建议的方法。

答案 2 :(得分:0)

除非有充分的理由,否则不应该删除这样的事件处理程序。 在这种情况下,我建议只创建一个事件处理程序,然后在该事件处理程序中确定下一步将发生什么。