为什么使用Model – View – ViewModel 模式
最大的好处在于它允许开发者创建一个没有用户界面的应用程序。设计者可以使用Microsoft Expression Blend 4 创建与代码无关的用户界面。
这样做的好处包括:
- 可以通过可视化工具比较容易的创建用户界面,而不用写任何代码。
- 非程序员也可以设计和实现一个不错的用户界面。
- 可以优先创建用户界面,如果需要的话可以同时编写代码。
- 即使用户界面发生了改变,代码也不用发生变化。
为了实现这一目的,你需要创建没有后台代码View,使用包含绑定和命令的ViewModel 同应用程序进行通信。
Model是应用程序的数据模型,Model包括:
- Web服务:Silverlight应用程序通常需要与Web服务器进行通信,通过Web Service方法获取数据。
- Rest服务:同Web服务一样。
- 泛型集合:基本上可以是任何数据。
ViewModel包括:
- 属性:实现INotifyPropertyChanged接口,属性发生改变时,绑定到属性的元素都会获得自动通知。
- 集合:ObservableCollection类型的集合,集合发生改变时,绑定到集合的元素都会获得自动通知。
- 命令:实现ICommand接口,引发一个事件,并且可以传入一个Object类型的参数。
这部分的实现可以使用Expression Blend,并且不用编写任何代码。
- 属性:绑定到TextBox、RadioButton、CheckBox、MediaElement。
- 集合:绑定到ListBox、TreeView、DataGrid。
- 命令:绑定到ViewModel中实现了ICommand接口的命令。