我们先新建一个WPF项目MVVMLightDemo,添加GalaSoft.MvvmLight.dll(没有可以自己下载)

  

  然后在项目中添加三个文件夹,如图:

    

  先添加我们的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 = , Name = "张三" });
list.Add(new Student() { StuNo = , Name = "李四" });
return list;
}
}
}

  注意:1.该类继承了ObservableObject,该类主要实现了属性变更通知接口,如我们用到的:RaisePropertyChanged 方法

     2.该类中的GetStudentList()方法只是为了得到数据,我们项目里一般都是从数据库查数据。

接着,我们在ViewModel下添加StudentViewModel文件,代码如下:

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;

  我在该类的构造函数中,对 StudentData 进行了初始化,把数据给赋值上去了,那么在接下来的View中绑定 StudentData 才会出现数据。

最后,在View文件夹下添加StudentView.xaml文件。代码如下:

 <Window x:Class="MVVMLightDemo.View.StudentView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="StudentView" Height="" Width="">
<Grid>
<DataGrid Name="studentDataGrid" ItemsSource="{Binding Path=StudentData}"/>
</Grid>
</Window>

仅这样还不行,我们还需要让View与ViewModel关联起来,那么需要设置这个View的数据上下文。 在后台编写如下代码(也可在前台编写绑定DataContext)

 using System.Windows;
using MVVMLightDemo.ViewModel; namespace MVVMLightDemo.View
{
public partial class StudentView : Window
{
public StudentView()
{
InitializeComponent();
this.DataContext = new StudentViewModel();
}
}
}

好了,到这里我们实现了MVVMLight的数据绑定,后面将在这个代码的基础上,介绍命令绑定。

装模作样的声明一下:本博文章若非特殊注明皆为原创,若需转载请保留原文链接(http://www.cnblogs.com/kest/p/4691423.html)及作者信息k_est

最新文章

  1. java代码的初始化过程研究
  2. lecture11-hopfiled网络与玻尔兹曼机
  3. [poj2184]我是来水一下背包的
  4. python之路 之open
  5. 在iOS开发中使用FMDB-备用
  6. C#中对于接口的实现方式
  7. Computer Transformation(规律,大数打表)
  8. JQUERY prop与attr差额
  9. 2.1 sikuli 中编程运行
  10. ubuntu12.04安装tar.gz格式的jdk
  11. UML类图及依赖,泛化,关联,聚合,组合,实现
  12. 我推荐的 Java Web 学习路线
  13. TensorFlow简易学习[1]:基本概念和操作示例
  14. kafka原理和实践(二)spring-kafka简单实践
  15. python批量修改文件内容及文件编码方式的处理
  16. 在WinForm应用程序中快速实现多语言的处理
  17. 小妖精的完美游戏教室——人工智能,A*算法,导航网络篇
  18. 自定义git忽略规则
  19. POJ 2385 Apple Catching【DP】
  20. C语言结构体初始化(转载)

热门文章

  1. 【gradle使用前篇—Groovy简介】
  2. python入门之五种字典创建方法
  3. html5不能播放视频的方法
  4. Python数据挖掘入门与实战PDF电子版加源码
  5. hdu 1024 Max Sum Plus Plus (动态规划)
  6. rsync同步基本用法
  7. linux添加、删除、升级软件包 yum rpm dpkg
  8. 使用Charles设置https代理到http以及证书安装(服务端篇)
  9. ZeroC ICE中的对象模型和概念
  10. leetcode-242 判断两个字符串是不是 Anagram ?