设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 网站设计 > 正文

wpf – 如何将命令附加到CheckBox的检查和取消选中?

发布时间:2021-03-07 01:37 所属栏目:12 来源:网络整理
导读:在我的ViewModel中,我有两个命令: ICommand ExecuteMeOnCheck { get; }ICommand ExecuteMeOnUncheck { get; } 我希望将这些命令附加到CheckBox,并在检查时执行其中一个命令,而在取消选中时执行另一个命令.实现这一目标的最佳方法是什么,而不会因为代码隐藏

在我的ViewModel中,我有两个命令:

ICommand ExecuteMeOnCheck { get; }
ICommand ExecuteMeOnUncheck { get; }

我希望将这些命令附加到CheckBox,并在检查时执行其中一个命令,而在取消选中时执行另一个命令.实现这一目标的最佳方法是什么,而不会因为代码隐藏而混淆View?

解决方法

我发现这样做的最简单方法是借用一堆代码.我还认为您不希望为状态更改公开两个事件.命令CheckedChangedCommand而不是Checked和Unchecked.将CheckBox.IsChecked依赖项属性绑定到ViewModelClass上的属性.这样,当您的命令执行时,您只需在ViewModel中检查该值.

首先,从WPF ViewModel toolkit开始使用DelegateCommand.从您的帖子中不清楚您是否是.

接下来,从此链接的“下载”选项卡下载.zip archive.

存档有一个名为EventBehaviourFactory的类,可以更轻松地设置DependencyProperty.回到上面链接的Home选项卡,Samuel告诉您如何将XAML中的Command连接到ViewModel.这里是:

<TextBox ff:TextBoxBehaviour.TextChangedCommand="{Binding TextChanged}"/>

我使用了三个类(DelegateCommand,EventBehaviourFactory和TextBoxBehaviour)行,并在大约五分钟内让TextChanged事件在我的项目中工作.

将它扩展到您需要做的其他控件的模式也很容易.我设法以相同的方式连接ListBox.SelectionChanged.创建一个新的ControlBehaviour类,并在所有实例中将“Control”替换为“TextBox”,并将DependencyProperty附加到新事件.

当你背后的代码是空的时候,这是一件很美妙的事情!

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读