Событие Button.Click - PullRequest
       0

Событие Button.Click

0 голосов
/ 11 марта 2012

У меня есть функция для слайдера:

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 голосов
/ 11 марта 2012
this.button1.Click -= ee;

это исключит ссылку из функции "ee"

, но я бы предпочел метод, предложенный dlev.

0 голосов
/ 08 августа 2018

Удаление такого обработчика событий - это то, что вам не следует делать, если только у вас нет для этого веской причины.В этом случае я бы рекомендовал создать только один обработчик событий, и внутри этого обработчика событий решить, что будет дальше.

0 голосов
/ 11 марта 2012

Вместо установки другого обработчика в зависимости от значения ползунка, вероятно, было бы проще подключить обработчик, нажимаемый одной кнопкой, а затем изменить то, что происходит в этом обработчике, на основе текущего значения ползунка.Это, очевидно, значительно упростит подписку и отписку на событие click, но при этом позволит вам гибко определять, что ваша программа делает для различных значений ползунка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...