将方法调用分配给按钮单击参数

时间:2018-09-29 19:46:16

标签: c# wpf delegates event-handling

我创建了一个自定义消息窗口,例如MessageBox,但是禁用了按钮,直到选中了复选框。

我要:

  1. 将任何其他类中的方法作为参数传递给此消息窗口的构造函数。
  2. 将此方法绑定到按钮单击上,以便在单击该方法时执行该方法。

我是C#的新手,有点困惑。我怀疑这与委托,Func,EventHandler等有关,我什至整理出委托和事件的工作方式,但这对我来说有点太多了。

问题是,是否可能,如果是,其背后的逻辑是什么?有没有例子?

我真的怀疑我是唯一需要它的人。

1 个答案:

答案 0 :(得分:0)

以下是使用构造函数传递EventHandler的示例代码:

[描述了两种方法(Lambda,方法)]

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 ...
    }
}