ViewModelBase ObservableObject
ViewModelBase && ObservableObject
在Mvvm中,ViewModel和Model都需要具有通知界面更新數據的能力,這都要借助于WPF中的
INotifyPropertyChanged 接口,每一個ViewModel和Model都要去實現接口就太麻煩,于是作為
Mvvm框架的MvvmLight直接為我們提供了基類,并已經實現了這個接口。ViewModel繼承自ViewModelBase
,Model繼承自ObservableObject。在更新屬性時,調用RaisePropertyChanged()來通知界面更新。
另外ViewModelBase還提供了一個判斷當前是否設計時的屬性IsInDesignMode,這個屬性用于在ViewModel
中區分當前是運行時還是設計時,設計時可以顯示一些模擬數據,運行時就顯示真實數據,對UI開發人員是一個
比較友好的東西。
有了這2個基類的幫助,我們還需要在界面上進行正確的綁定
<Window x:Class="MvvmDemo.Views.AppView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="AppView" Height="300" Width="300"><Grid><ListView ItemsSource="{Binding Students}"><ListView.View><GridView><GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Name}"></GridViewColumn></GridView></ListView.View></ListView></Grid> </Window>ListView的ItemSource綁定到了ViewModel上的Students集合,此時Vs中還不能顯示數據,那是因為,
我們并沒有將View和ViewModel聯系起來,View的DataContext就是ViewModel,下面我們將提到一個重要
的類ViewModelLocator(視圖模型定位器)
轉載于:https://www.cnblogs.com/HelloMyWorld/p/4750068.html
總結
以上是生活随笔為你收集整理的ViewModelBase ObservableObject的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cordova实战培训
- 下一篇: 【C语言探索之旅】第三部分第三课:SDL