传参这里参考:https://www.cnblogs.com/zhlziliaoku/p/5867556.html
界面上添加一个按钮
<Button Content="点击" Width="120" Height="31" Command="{Binding showCommand}" CommandParameter="{Binding RelativeSource={RelativeSource self}}"></Button>
也可以修改参数为:
<Button Content="点击" Width="120" Height="31" Command="{Binding showCommand}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}"></Button>
后台代码,在构造函数里添加:
this.DataContext = new MainWindowModel();
在 MainWindowModel 类这样写:
public class MainWindowModel { public MyCommand showCommand { get; set; } public MainWindowModel() { showCommand = new MyCommand(Show); } public void Show(object obj) { MessageBox.Show("点击了按钮!"); } }
MyCommand 的定义是:
public class MyCommand : ICommand { Action<object> _action; public MyCommand(Action<object> action) { _action = action; } public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { _action(parameter); } }
这样就完成了界面按钮与后台方法的关联,可以打断点看一下两个传参的区别(一个传参是按钮 ,一个传参是当前窗体)。
标签:ICommand,MyCommand,C#,MainWindowModel,按钮,action,WPF,传参,public From: https://www.cnblogs.com/z5337/p/17900110.html