WPF中的命令(Command) (2)

WPF中的命令(Command)

    在Button有个Command属性,我们可以直接使用Binding和ViewModel中的命令对象做绑定。

    此处要注意MainView的构造方法中这一行代码:

WPF中的命令(Command)

    DataContext属性要设置为ViewModel实例,这样View才能跟ViewModel关联上,从而使用Binding才能绑定上MyCommand命令。

    另外需要知道的是,Button中的Command是通过点击触发的,也就是说当你点击的Button命令就会执行,其它的控件,如ListBox中的Item,需要双击才能执行命令,因为单击是选中Item。

    当程序运行时,点击按钮,输出窗口会打印“命令被执行了”字样:

WPF中的命令(Command)

    然后我们清除掉输出窗口的内容,当再一次点击按钮时,因为isCanExec被设置为FALSE,所以命令终止执行,输出窗口无内容:

WPF中的命令(Command)

 

WPF中的命令(Command)

【命令参数CommandParameter】

    如果命令仅仅是这样使用,那就太单调了,大家肯定注意到了Execute和CanExecute方法还有个类型为object的参数,这个参数就是命令参数,它可以接收我们自定义的数据,在执行命令时传入进来,我们则可以根据这个参数,对执行逻辑做多样化的判断,下面我将代码稍作改变:

    在界面上放置两个按钮,并修改ViewModel代码为如下所示:

WPF中的命令(Command)

     在Button中使用CommandParameter属性设置命令的参数,默认会将数据当做string处理,当然它也可以使用Binding跟其它属性做绑定,关于View与ViewModel之间的数据绑定,我们后期讲解。

WPF中的命令(Command)

    在MyCommand的执行逻辑中判断参数的值,从而输出不同的结果,一次点击按钮结果如下:

WPF中的命令(Command)

 

 

1024,祝大家节日快乐。

WPF中的命令(Command)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjzjp.html