background preloader

Wpf

Facebook Twitter

WPF中StringFormat的用法 - 正文. Charts & Gauges Documentation. 漂亮的反射效果 - 帅帅的蓝莓. Mvvm Light Toolkit for wpf/silverlight系列之Command和Events - duanzilin的专栏. 事件是WPF/SL应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理,因此要了解mvvm中处理事件的方式,就必须先熟悉命令的工作原理。 一、RelayCommand命令 WPF/SL命令是通过实现 ICommand 接口创建的。 ICommand 公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged)。 Execute 执行与命令关联的操作。

CanExecute 确定是否可以在当前命令目标上执行命令。 在MvvmLight中实现ICommand接口的类是RelayCommand,RelayCommand通过构造函数初始化Execute 和 CanExecute方法,因此,构造函数传入的是委托类型的参数,Execute 和 CanExecute则执行的是委托的方法,RelayCommand相关代码如下: 二、 Comand属性绑定 通常实现了 ICommandSource的控件可以使用Comand属性绑定,实现 ICommandSource 的 WPF 类包括:ButtonBase、MenuItem、Hyperlink 以及 InputBinding。 简单绑定示例: xaml: ViewModel: public MainViewModel() { ... 注意:SL4才开始支持Command属性绑定,之前的版本不能使用Command属性绑定 CanExecute命令绑定示例: viewmodel: bool _CanClick; public bool CanClick { get { return _CanClick; } set { if (_CanClick == value) return; _CanClick = value; RaisePropertyChanged("CanClick"); // SL中需要手动调用RaiseCanExecuteChanged方法更新按钮可用s状态 CanExecuteCommand.RaiseCanExecuteChanged(); } } public MainViewModel() { ... 带参数的命令绑定示例: viewmodel: public MainViewModel() { ... 注意: 三、使用行为绑定命令 xaml: Silverlight, WPF, Windows Phone & SharePoint Charts / Gauges.