从一个prismWpfMVVM的例子中学到的

2021-04-26 03:27

阅读:325

标签:not   ret   nts   oid   amp   模式   prism   value   程序开发   

整个程序如下,从博客园一个作者看到的例子,但是对这个例子做了点修改。我觉得这个更符合MVVM模式。这个用到了prism框架,在项目中要引用Microsoft.Practices.Prism.dll

技术分享图片

按照程序开发顺序记录如下步骤:

一、先设计界面,这样才知道有哪些Model。

技术分享图片

相应的xaml代码如下:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">













 

二、然后就是从UI界面抽象出Model。

StudentModel.cs:

public class StudentModel
{
///


/// 学号
///

public int StudentId
{
get;
set;
}

///


/// 姓名
///

public string StudentName
{
get;
set;
}

///


/// 年龄
///

public int StudentAge
{
get;
set;
}

///


/// Email
///

public string StudentEmail
{
get;
set;

}

///


/// 性别
///

public string StudentSex
{
get;
set;
}
}

 

三、接下来就是ViewModel了。

StudentViewModel.cs:

public class StudentViewModel:NotificationObject
{
public DelegateCommand ShowCommand { get; set; }

public StudentViewModel()
{

ShowCommand = new DelegateCommand(new Action(ShowStudentInfo));

}

private StudentModel student;
public StudentModel Student
{
get { return student; }
set
{
student = value;
this.RaisePropertyChanged("Student");//Student这个StudentModel类的对象改变
}
}

public StudentModel StudentTemp { get; set; }
private void LoadData()
{
StudentTemp = new StudentModel();
StudentTemp.StudentId = 1;
StudentTemp.StudentName = "tina";
StudentTemp.StudentAge = 20;
StudentTemp.StudentEmail = "aa@qq.com";
StudentTemp.StudentSex = "大帅哥姐";
}

private void ShowStudentInfo()
{
#region --正确的方式--
//this.Student = StudentTemp;
this.LoadData();
//要对象改变,那么也要用一个对象赋值给它,让他改变,即用对象改变对象
this.Student = StudentTemp;
#endregion


#region --无效的方式,程序只认为改变成员,并没有改变对象--
//Student = new StudentModel();
//Student.StudentId = 1;
//Student.StudentName = "tina";
//Student.StudentAge = 20;
//Student.StudentEmail = "aa@qq.com";
//Student.StudentSex = "大帅哥姐";
#endregion
}
}

最后就是把ViewModel和View关联起来:

MainWindow.xaml.cs:

技术分享图片

 

从一个prismWpfMVVM的例子中学到的

标签:not   ret   nts   oid   amp   模式   prism   value   程序开发   

原文地址:http://www.cnblogs.com/dotnetHui/p/7905849.html


评论


亲,登录后才可以留言!