WPF-DelegateCommand

接触WPF一段事件,已经是一个勉强合格的小白了。接下来的笔记是WPF MVVM模式下的Command

。一开始以为Command只有两种,一种是WPF常用的RelayCommand,另一种是待会的笔记—DelegateCommand,后来才发现还有第三种(果然是我知识范围不够):AttachbehaviorCommand。

经过测试发现RelayCommand比较适合WPF,因为RelayCommand下的CommandManager方法在silverlight,还是叫SL吧,在SL下面无法使用;而DelegateCommand则在WPF和SL上都可以正常使用,为什么捏?他们的主要区别不大,也就是区别于View(xaml)中的控件绑定使用上,比如Button等。AttachbehaviorCommand这个因为不太熟悉所以不做解释。虽然在使用上经常用RelayCommand,但不能否认的是DelegateCommand还是最方便的那个。

    说起DelegateCommand它还有个兄弟(姐妹)CompositeCommand,它们都派生于ICommand接口,怎么说呢?上段代码:

public interface ICommand

{

     event EventHandler CanExecuteChanged;

 

     bool CanExecute(object parameter);

 

     void Execute(object parameter);

}

 

DelegateCommand,这种WPF,SL都可以使用,View(XAML)里面可以直接使用interaction的trigger激发,比较适合不同的UIElement控件。为什么不用Command来绑定呢?在XAML里面用interaction来绑定这个事件,而不是在Button里面直接使用Command来绑定,这样有个好处,很直接,非常直观,并且可以响应多种事件。具体怎么写可以参考我之前分享的笔记:i:Interaction,当然不想看的,我下面直接写个:

你可能感兴趣的:(wpf,wpf)