MVVM 框架

在 MVVM Light 框架中,事件是 WPF 应用程序中 UI 与后台代码进行交互的最主要方式,
与传统方式不 同,mvvm 中主要通过绑定到命令来进行事件的处理, 因此要了解 mvvm 中处
理事件的方式,就必须先熟悉命令的工作原理。
命令的作用的最大的特点就是解耦 View 和 ViewModel 的行为交互,将视图的显示和业务逻辑
分开所谓的解耦就是降低 View 与 ViewModel 之间的依赖行为。进行命令的绑定,触发点击操
作的时候,这个按钮实际完成 的是对应 ViewModel 中的所绑定的方法的执行。
WPF 命令是通过实现 ICommand 接口创建的。 ICommand 公开了两个方法(
Execute 及
CanExecute)和一个事件(
CanExecuteChanged)。
RelayCommand 通过构造函数初始化 Execute 和 CanExecute 方法,因此,构造函数传入的是
委托类 型的参数。
其中比较重要的就是 Converter,ConverterParameter,Source,RelativeSource,ElementName,
Mode。
分别是参数转换器,要进行转换的参数,绑定源,自定义绑定源,绑定的元素名称,绑定的
模式。
比如说当要对窗口进行操作时,必须要在获取命令时,使用参数 ConverterParameter 传递窗
口(window)参数
并不是所有的控件都是有命令的。但是又不能使用事件去调用方法,所以要将事件转换为命

将事件转换为命令的固定格式:
引用
xmlns:i=“clr-namespace:System.Windows.Interactivity;assembly=System.Windows

//Loaded 为事件
Command=”{Binding
LoadedCommand}"
CommandParameter=“{Binding ElementName=WLogin}” />


还有一种方式就是使用 InputBindings 属性
InputBindings:获取与此元素关联的输入绑定的集合。内容为一个或多个 InputBinding 元
素(通常为 KeyBinding 或 MouseBinding 派生类)。 其中每个都应具
有 Command 和 Gesture 属性集

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