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