Prism BindableBase 和 Commands 的介绍
Prism.Mvvm: 主要包含 BindableBase 实现数据字段绑定,并有更新通知。
建议先建个基类继承 BindableBase ,然后其他类继承基类,及方便以后有公共属性或方法的使用,也可以方便替换 Prism.Mvvm .
代码例子如下:
public class BaseModelView: BindableBase
{
….
private bool _isValid=true;
public bool IsValid
{
get
{
return _isValid ;
}
set
{
if (value != _isValid)
{
_isValid = value;
this.RaisePropertyChanged("IsValid");
}
}
}
}
Prism.Commands: 主要包含 DelegateCommand, CompositeCommand 。DelegateCommand 主要和 Command 配合使用。Command 可以绑定定义好的 DelegateCommand 。
DelegateCommand 定义如下:
方式1:
public ICommand ClickCmd
{
get {
return new DelegateCommand(() =>
{
……
});
}
}
方式2:
public DelegateCommand<object> SubmitCommand { get; private set; }
this.SubmitCommand = new DelegateCommand<object>(this.Submit, this.CanSubmit);
private void Submit(object parameter)
{
// 方法体
}
private bool CanSubmit(object parameter)
{
Return true;
}
这是主要的方法定义
CompositeCommand:就是将多个 DelegateCommand 组合到一起调用:
private readonly CompositeCommand saveAllCommand;
public DelegateCommand<object> SaveProductsCommand { get; private set; }
public DelegateCommand<object> SaveOrdersCommand { get; private set; }
this.saveAllCommand = new CompositeCommand(); this.saveAllCommand.RegisterCommand(SaveProductsCommand); this.saveAllCommand.RegisterCommand(SaveOrdersCommand);
有注册事件,就有取消事件:
saveAllCommand.UnregisterCommand(cmd);
理解了 BindableBase 和 Command 就可以在小型的项目中使用 Prism.mvvm 了,就可以体会到数据绑定在wpf 中及其的方便。