一、Data Binding
Data Binding在MVVM模式中起到了重要的作用,WPF提供了强大的数据绑定功能,因此在设计view和model时应该充分利用这些能力,这意味着你必须实现正确的接口。
1)WPF支持one-way binding和two-way binding,two-way binding会将用户对界面数据的修改自动更新到底层数据对象。
2)为了将view model或者model中的数据更新通知到view,需要实现INotifyPropertyChanged接口或者INotifyCollectionChanged接口(如果model是一个集合)。
3)此外,ICollectionView接口在view和view model/model底层集合对象之间提供了排序、过滤、分组以及选择元素的跟踪操作。WPF的ListCollectionView实现了ICollectionView接口。
二、Commands
在WPF中,用户通过UI进行的操作被定义为Commands。Commands为操作和UI上的控件进行绑定提供了一种便利的方式。
WPF的一些控件提供了Command属性,这个属性可以绑定到viewModel中实现了ICommand接口的对象,例如:
public class QuestionnaireViewModel
{
public QuestionnaireViewModel()
{
this.SubmitCommand = new DelegateCommand<object>(
this.OnSubmit, this.CanSubmit );
}
public ICommand SubmitCommand { get; private set; }
private void OnSubmit(object arg) {...}
private bool CanSubmit(object arg) { return true; }
}

本文深入探讨了MVVM模式在WPF应用开发中的关键要素,包括Data Binding的重要性,WPF中one-way和two-way binding的使用,以及如何通过实现INotifyPropertyChanged接口确保数据同步。同时,文章介绍了Commands的概念,以及如何通过实现ICommand接口将操作与UI控件绑定。此外,还提到了数据验证,如IDataErrorInfo接口在view model中的作用。
最低0.47元/天 解锁文章
4066

被折叠的 条评论
为什么被折叠?



