[MVVM]04-MVVMLight不支持命令的控件把事件转换成命令
来源:互联网 发布:淘宝店铺页头设计尺寸 编辑:程序博客网 时间:2024/06/18 11:14
MVVMLight不支持命令的控件把事件转换成命令
场景
- checkbox不支持命令,但是要在选中在时候在ViewModel中进行相应的操作,那么要怎么实现呢
操作
- 我们可以把事件转化为命令
- 引用System.Windows.Interactivity 在blend中带的有,vs2017引入mvvmlight会自动添加
- 在xaml引入System.Windows.Interactivity。
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
- 在控件中可以这样使用
<CheckBox Width="30" Height="30" Margin="86,65,401,65"> <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <command:EventToCommand Command="{Binding CheckedCommand}"></command:EventToCommand> </i:EventTrigger> <i:EventTrigger EventName="Unchecked"> <command:EventToCommand Command="{Binding UnCheckedCommand}"></command:EventToCommand> </i:EventTrigger> </i:Interaction.Triggers> </CheckBox>
- 在ViewlModel添加对应的事件处理弹框
CheckedCommand = new RelayCommand(Checked); UnCheckedCommand = new RelayCommand(UnChecked); public RelayCommand CheckedCommand { get; set; } public RelayCommand UnCheckedCommand { get; set; } private void Checked() { MessageBox.Show("Checked"); } private void UnChecked() { MessageBox.Show("Unchecked"); }
提示
- 命令可以很好的添加快捷键的后面的文会讲到。WPF内部在的优化特别是最新的一版更新中有明显的改进
- 如果不到万不得一的情况下一定遵守MVVM的规则,代码实现功能那里都可以写,乱写一方便是不方便维护,另一方便执行的效率,你不懂后台的执行,可怕的就是乱写。用了最近的性能拿到了结果。
源码
我有时候会被别人说这个可以用什么什么可以很方便的实现,我当然知道,一个独立的功能实现难,但一般不是世界难题都可以解决,但是放在现有的系统中,如何是对现有系统最小更改和影响的情况下实现呢。为了一个功能更改太量的现有功能,那种方法我不认为是最优秀的。理解细节和整体把握就是最大的底气。我是码农,但我爱惜我自己的土地。
阅读全文
0 0
- [MVVM]04-MVVMLight不支持命令的控件把事件转换成命令
- 转换成命令行SVN
- WPF中将事件包装成命令
- 把自己的名字也弄成命令行——秒懂所谓的命令行
- 把linux图形启动界面修改成命令行界面
- 把linux图形启动界面修改成命令行界面
- MVVM:MVVM、MVVMLight、MVVMLight Toolkit之我见
- [MVVM]02-MVVMLight页面前后台消息和命令传递
- [MVVM]01-MVVMLight安装
- linux xargs 将标准输入数据转换成命令行参数
- MVVM模式结合MVVMlight框架的应用(20)
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVM、MVVMLight、MVVMLight Toolkit之我见
- MVVMLight 实现指定Frame控件的导航
- Nodejs 发布自己的npm包并制作成命令行工具
- Linux图形界面切换成命令行登录
- python3 学习杂记(及首篇博客)
- Linux内核学习笔记——进程管理
- string的查找和替换
- 装箱拆箱
- 第1章 对象导论
- [MVVM]04-MVVMLight不支持命令的控件把事件转换成命令
- Python语言入门(三)简洁易用的数组与List
- 浏览历史记录通用代码
- springcloud中使用Hystrix保护应用
- Vue的移动端多图上传插件vue-easy-uploader
- 问题:Action中request域对象如何从Jsq中获取
- [MVVM]03-MVVMLight页面间传递消息
- 折半查找算法(开始序列有序)
- KMP算法