WPF中采用MVVM模式,View中的一个按钮执行某段代码要用命令绑定而不是事件。
CanExecute控制着是否可执行这段命令,事件CanExecuteChanged当CanExecute发生改变时发生。下面代码简单的实现了ICommand接口:
public class RelayCommand : ICommand
{
public RelayCommand(Action execute)
{
ExecuteCommand = execute;
}
public Action ExecuteCommand { get; set; }
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
ExecuteCommand();
}
}
ViewModel中使用:
public ICommand AddCommand
{
get
{
return new RelayCommand(() =>
{
//DoSome
});
}
}
View中绑定:
<Button x:Name="button" Content="ADD" Command="{Binding AddCommand}" HorizontalAlignment="Left" Margin="625,393,0,0" VerticalAlignment="Top" Width="75"/>