- MVVM概念:
- MVVM框架就是比MVC框架中多了个ViewModel,这个同时也是MVVM的核心思想,把Controller的数据和逻辑处理部分从中抽离出来。那么ViewModel即使Model和Controller之间的一个桥梁。
- 我们可以用WPF来理解
- 基于Wpf框架的MVVM思想
- MVVM轻量级框架:MvvmLight
- MVVm模块化框架:Prism。
- MVVM框架:MVVmLight MvvmToolkit prism。
- 创建一个WPF的项目
1、View就是用xaml实现的界面,负责与用户交互,接收用户输入,把数据展现给用户。
2、ViewModel是一个C#类,负责收集需要绑定的数据和命令,聚合Model对象,通过View类的DataContext属性绑定到View,同时也可以处理一些UI逻辑。
3、Model,就是系统中的对象,可包含属性和行为。
View对应一个ViewModel,ViewModel可以聚合N个Model,ViewModel可以对应View。
View的职责就是负责如何显示数据及发送命令,ViewModel的功能是提供数据和执行命令,局部的View对应局部的ViewModel功能点散落在各个ViewModel中,
优点:1,易维护 2,灵活扩展 3,易测试 4,用户界面设计师与程序开发者更好的合作。
- View和ViewModel关联在View命名空间中使用
- 自动关联:设置属性:prism:ViewModelLocator.AutoWireViewModel=”true”
- 直接代码一对一关联
public partial class App : PrismApplication { protected override void ConfigureViewModelLocator() { base.ConfigureViewModelLocator(); /// 一对一注册 ViewModelLocationProvider.Register(typeof(FirstWindow).ToString(), typeof(FirstWindowVM)); ViewModelLocationProvider.Register(typeof(FirstWindow).ToString(), () => Container.Resolve<FirstWindowVM>() );ViewModelLocationProvider.Register<FirstWindow, FirstWindowVM>(); } }