咱們先新建一個WPF項目MVVMLightDemo,添加GalaSoft.MvvmLight.dll(沒有能夠本身下載)html
而後在項目中添加三個文件夾,如圖:數據庫
先添加咱們的Model,在Model下新建一個類Student函數
using GalaSoft.MvvmLight; using System.Collections.ObjectModel; namespace MVVMLightDemo.Model { public class Student : ObservableObject { private int stuNo; public int StuNo { get { return stuNo; } set { stuNo = value; RaisePropertyChanged(() => StuNo); } } private string name; public string Name { get { return name; } set { name = value; RaisePropertyChanged(() => Name); } } public static ObservableCollection<Student> GetStudentList() { ObservableCollection<Student> list = new ObservableCollection<Student>(); list.Add(new Student() { StuNo = 1, Name = "張三" }); list.Add(new Student() { StuNo = 2, Name = "李四" }); return list; } } }
注意:1.該類繼承了ObservableObject,該類主要實現了屬性變動通知接口,如咱們用到的:RaisePropertyChanged 方法
this
2.該類中的GetStudentList()方法只是爲了獲得數據,咱們項目裏通常都是從數據庫查數據。spa
接着,咱們在ViewModel下添加StudentViewModel文件,代碼以下:code
using GalaSoft.MvvmLight; using MVVMLightDemo.Model; using System.Collections.ObjectModel; namespace MVVMLightDemo.ViewModel { public class StudentViewModel : ViewModelBase { private ObservableCollection<Student> studentData; public ObservableCollection<Student> StudentData { get { return studentData; } set { studentData = value; RaisePropertyChanged(() => StudentData); } } public StudentViewModel() { studentData = Student.GetStudentList(); } } }
注意:該類繼承了ViewModelBase(ViewModelBase 也繼承了ObservableObject),不要忘記using System.Collections.ObjectModel;xml
我在該類的構造函數中,對 StudentData
進行了初始化,把數據給賦值上去了,那麼在接下來的View中綁定 StudentData
纔會出現數據。htm
最後,在View文件夾下添加StudentView.xaml文件。代碼以下:blog
1 <Window x:Class="MVVMLightDemo.View.StudentView" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="StudentView" Height="300" Width="300"> 5 <Grid> 6 <DataGrid Name="studentDataGrid" ItemsSource="{Binding Path=StudentData}"/> 7 </Grid> 8 </Window>
僅這樣還不行,咱們還須要讓View與ViewModel關聯起來,那麼須要設置這個View的數據上下文。 在後臺編寫以下代碼(也可在前臺編寫綁定DataContext)繼承
1 using System.Windows; 2 using MVVMLightDemo.ViewModel; 3 4 namespace MVVMLightDemo.View 5 { 6 public partial class StudentView : Window 7 { 8 public StudentView() 9 { 10 InitializeComponent(); 11 this.DataContext = new StudentViewModel(); 12 } 13 } 14 }
好了,到這裏咱們實現了MVVMLight的數據綁定,後面將在這個代碼的基礎上,介紹命令綁定。
裝模做樣的聲明一下:本博文章若非特殊註明皆爲原創,若需轉載請保留原文連接(http://www.cnblogs.com/kest/p/4691423.html)及做者信息k_est