学习心得:
1.首先在WPF中,控件的Command可以绑定自己的ViewModel中已经实例化的(ICommand)属性,但是前提是你必须提前对这个ICommand属性进行实例化。WPF中提供的预定义命令-RoutedUICommand(继承于RoutedCommand-继承于ICommand)就是微软提前给大家定义的预定义ICommand命令,当控件的Command想要绑定一个命令的时候,就可以用CommandBinding实例化一个(实现一个)RoutedUICommand进行业务逻辑的实现。示例如下:
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Open" Execute="OpenCommandExecute" CanExecute="OpenCommandCanExecute">
</Window.CommandBindings>
<!--控件中使用-->
<Button Command="ApplicationCommands.Open">
其中,在Window.CommandBindings中实例化一个CommandBinding,由其对WPF中的预定义命令ApplicationCommands.Open进行实现(因为WPF中提供的预定义命令都是没有具体方法实现的)。Execute提供具体的业务逻辑实现,CanExecute判断代码是否可以被调用,一般情况下是返回一个ture。
在后端代码中的业务逻辑如下:
public void OpenCommandExecute(Object sneder,ExecutedRoutedEventArgs e)
{
//具体业务逻辑的实现
}
public bool OpenCommandCanExectue(Object sender,CanExectueEventArgs e)
{
return true;
}
上述代码即可实现利用WPF的预定义命令进行和控件命令绑定的实现。