Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将方法调用分配给参数中的按钮单击_C#_Wpf_Delegates_Event Handling - Fatal编程技术网

C# 将方法调用分配给参数中的按钮单击

C# 将方法调用分配给参数中的按钮单击,c#,wpf,delegates,event-handling,C#,Wpf,Delegates,Event Handling,我创建了一个自定义消息窗口,类似于MessageBox,但在选中复选框之前,按钮处于禁用状态 我想: 将任何其他类中的方法作为参数传递给此消息窗口的构造函数 将此方法绑定到按钮单击,以便在单击时执行该方法 我是C#的新手,有点困惑。我怀疑它与委托、Func、EventHandler等有关,我甚至整理了委托和事件的工作方式,但这对我来说有点太多了 问题是这是否可能,如果可能,这背后的逻辑是什么?有什么例子吗 我真的怀疑我是唯一需要它的人。下面是一个使用构造函数传递EventHandler的示例代码

我创建了一个自定义消息窗口,类似于MessageBox,但在选中复选框之前,按钮处于禁用状态

我想:

  • 将任何其他类中的方法作为参数传递给此消息窗口的构造函数
  • 将此方法绑定到按钮单击,以便在单击时执行该方法
  • 我是C#的新手,有点困惑。我怀疑它与委托、Func、EventHandler等有关,我甚至整理了委托和事件的工作方式,但这对我来说有点太多了

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


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

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

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


    创建具有ICommand特性的视图模型类。将按钮的命令属性绑定到视图模型属性。在web上搜索MVVM和命令。
    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 ...
        }
    }