Назначить вызов метода нажатию кнопки в параметре - PullRequest
0 голосов
/ 29 сентября 2018

Я создал собственное окно сообщения, например MessageBox, но с отключенной кнопкой, пока флажок не установлен.

Я хочу:

  1. Передать метод из любого другого классав качестве параметра для конструктора этого окна сообщения.
  2. Привязать этот метод к нажатию кнопки, чтобы при его нажатии выполнялся метод.

Я новичок в C # иЯ немного сбит с толку.Я подозреваю, что это как-то связано с делегатом, Func, EventHandler и т. Д., И я даже разобрался, как работают делегаты и события, но для меня это слишком много.

Вопрос в том, возможно ли это ида какая логика за этим стоит?Может быть, есть какие-нибудь примеры?

Я действительно сомневаюсь, что я единственный, кто когда-либо нуждался в этом.

1 Ответ

0 голосов
/ 30 сентября 2018

Вот пример кода, который передает EventHandler с помощью конструктора:

[Было описано два подхода (лямбда, метод)]

class TestWindow
{
    public TestWindow(RoutedEventHandler ButtonClickHandler)
    {
        SomeButton.Click += ButtonClickHandler;
    }
}

class Caller
{
    void Test()
    {
        TestWindow A = new TestWindow((S, E) => {
            // Event Handler Codes ...
        });

        TestWindow B = new TestWindow(ClickHandler);
    }

    private void ClickHandler(object sender, RoutedEventArgs e)
    {
        // Event Handler Codes ...
    }
}
...