【问题标题】:Assign method call to button click in parameter将方法调用分配给参数中的按钮单击
【发布时间】:2018-09-29 19:46:16
【问题描述】:

我创建了一个自定义消息窗口,如 MessageBox,但在选中复选框之前禁用按钮。

我想:

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

我是 C# 新手,有点困惑。我怀疑它与delegate、Func、EventHandler等有关,我什至整理了delegate和events是如何工作的,但这对我来说有点太多了。

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

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

【问题讨论】:

  • 创建一个具有 ICommand 属性的视图模型类。将 Button 的 Command 属性绑定到视图模型属性。在网上搜索 MVVM 和命令。

标签: c# wpf delegates event-handling


【解决方案1】:

这是一个使用构造函数传递 EventHandler 的示例代码:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2015-07-27
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    相关资源
    最近更新 更多