使用Click Event WPF启动控制器方法
本文关键字:控制器 方法 启动 WPF Click Event 使用 | 更新日期: 2023-09-27 18:28:42
我想知道如何从视图中的"点击"事件按钮直接调用控制器的方法,而不在视图中放入代码
<Button Click="?"/>
我不想在我的视图中生成一个方法来调用另一个方法(除非我必须这样做)。
感谢
命令是这个问题的常见答案。不幸的是,它需要一个小样板才能开始,这里有一个非常简单的例子:
public class MyViewModel
{
public MyCommand ButtonClick { get; set; }
public MyViewModel()
{
ButtonClick = new MyCommand();
ButtonClick.CanExecuteFunc = ButtonClickCanExecute;
ButtonClick.ExecuteFunc = ButtonClickFunc;
}
public bool ButtonClickCanExecute(object parameter)
{
return true;
}
public void ButtonClickFunc(object parameter)
{
// Do stuff here
}
}
public class MyCommand : ICommand
{
public event EventHandler CanExecuteChanged;
public Predicate<object> CanExecuteFunc { get; set; }
public Action<object> ExecuteFunc { get; set; }
public bool CanExecute(object parameter)
{
return CanExecuteFunc(parameter);
}
public void Execute(object parameter)
{
ExecuteFunc(parameter);
}
}
如果愿意,除了返回true之外,还可以向CanExecute
中添加更多逻辑,然后可以将MyCommand
类重新用于UI中正在执行的任何其他命令。要绑定你的按钮,你只需要简单地写:
<Button Command="{Binding ButtonClick}">Action</Button>