本文主要是介绍Xamarin.Forms MVVM介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以下主要内容转自:http://www.jianshu.com/p/57d88f258fde
MVVM是Model-View-ViewModel的简写,是由微软在WPF中提供的新技术,MVVM 架构使用的是数据绑定基础架构。更多介绍:http://baike.baidu.com/view/3507915.htm
MVVM架构分为三层:
• Model负责访问数据,为ViewModel提供数据。
• ViewModel连接Model层和View层. ViewModel帮助管理Model提供的数据.
• View层表现数据,通常为XAML定义的用户界面.
三层之间的调用关系:
View层不允许直接调用Model层获取数据,View层获取数据需要通过调用ViewModel提供的方法或属性简介获取Model层提供的数据。
同时为了实现双向通信,ViewModel和View会提供事件处理逐层向下反馈用户处理。
再简单的MVVM示例中Model层是被省略的,ViewModel负责全部业务逻辑。ViewModel和View之间通过Data Binding通信,其中View作为Target,ViewModel作为Source。
ViewModels 和 Data Binding
再Data Binding介绍中提到,Source必须是实现了INotifyPropertyChanged(INPC)接口的对象。
INotifyPropertyChanged接口包含一个PropertyChanged事件委托类型为PropertyChangedEventHandler。PropertyChangedEventHandler委托第二个参数类型为PropertyChangedEventArgs,PropertyChangedEventArgs包含一个string 类型的PropertyName属性,根据这个属性可以判断ViewModel的哪个属性发生改变。
对Xamarin.Forms平台而言,ViewModel通常继承BindableObject 即可,ViewModel公共属性定义为BindableProperty类型。BindableObject已经实现了INotifyPropertyChanged接口,定义为BindableProperty类型的属性改变时会自动触发PropertyChanged事件。
简单INotifyPropertyChanged接口使用示例:一个Label标签显示当前时间,每过一秒Label时间更新一次。INotifyPropertyChanged + Data Binding实现。 自定义ViewModel实现INotifyPropertyChanged接口。
这篇关于Xamarin.Forms MVVM介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!