博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF MvvmLight RelayCommand 绑定Command 的使用
阅读量:4983 次
发布时间:2019-06-12

本文共 1718 字,大约阅读时间需要 5 分钟。

RelayCommand

Mvvm最大的特点就是分离了View和ViewModel,将数据的显示和业务逻辑分开。使用WPF的Binding,我们不仅能够

将数据从ViewModel绑定到View,同时也可以将行为绑定到View。例如,在主界面上点击一个按钮,这个按钮实际完成
的操作是ViewModel中对应的方法。这里我们用到Mvvm框架中的RelayCommand。下面是几种常用的情况

不带参数的RelayCommand

点击按钮,弹出消息框

AppView.xaml

AppViewModel.cs

///         /// 显示消息命令 ///  public RelayCommand ShowMsgCommand { get; set; } public AppViewModel() { //初始化命令 ShowMsgCommand= new RelayCommand(ShowMsg); } ///  /// 命令具体实现 ///  private void ShowMsg() { MessageBox.Show("HelloWorld!"); }

带参数的RelayCommand

点击按钮,显示我们输入的文本

AppView.xaml

AppViewModel.cs

///     /// 显示消息命令 ///  public RelayCommand
ShowTxtCommand { get; set; } public AppViewModel() { //初始化命令 ShowTxtCommand = new RelayCommand
(ShowMsg); } ///
/// 命令具体实现 /// private void ShowMsg(string txt) { MessageBox.Show(txt); }

RelayCommand是否可执行

注意,这是一个非常有用的功能,当RelayCommand执行的条件不满足时,将会导致界面上的按钮是禁用的。条件的判断

是由WPF程序自动执行的,并且频率非常高,所以,判断是否可执行的代码应该尽量简单。

AppView.xaml

AppViewModel.cs

private string _txt;        ///  /// 绑定到界面的Txt ///  public string Txt { get { return _txt; } set { _txt = value; RaisePropertyChanged(() => Txt); } } ///  /// 显示消息命令 ///  public RelayCommand ShowTxtCommand { get; set; } public AppViewModel() { //初始化命令 ShowTxtCommand = new RelayCommand(ShowMsg, CanShowMsgExecute); } ///  /// 命令具体实现 ///  private void ShowMsg() { MessageBox.Show(Txt); } ///  /// 显示消息命令是否可以执行 ///  /// 
private bool CanShowMsgExecute() { return !string.IsNullOrEmpty(Txt); }

注意:如果你使用的是.Net4.5,那么界面上的按钮可能禁用不到,这是Mvvm中的一个bug,不过作者已经修复了,解决

方案.

RelayCommand的使用就是这么简单。

 

http://www.cnblogs.com/HelloMyWorld/p/4750062.html

转载于:https://www.cnblogs.com/cmblogs/p/9047066.html

你可能感兴趣的文章
hive常见问题解决干货大全
查看>>
seq命令
查看>>
centos7常见的操作01 UTC CST
查看>>
Java必会的基础知识(2)
查看>>
NHibernate系列文章目录
查看>>
函数内置方法
查看>>
Python_58之logging模块
查看>>
正则表达式
查看>>
楼房重建(分块优化)
查看>>
斐波那契数列(矩阵加速递推)
查看>>
HTTP笔记之一
查看>>
Gradle 学习一
查看>>
hiho #1223 不等式
查看>>
Synchronized关键字
查看>>
webfont 字体
查看>>
lua快速入门
查看>>
FullCalendar 官方文档翻译
查看>>
plsql 操纵表数据的2种方式
查看>>
输出日期
查看>>
hibernate中实体与数据库中属性对应的类型
查看>>