上一个例子使用了Prism。这个例子不用Prism。用自己封装的库LiuxhCSDLL,其实也差不多。
一、程序结构
二、界面代码以及界面效果
15 6 7 188 9 10 11 12 13 14 15 16 17
三、抽象出Model
1 public class StudentModel 2 { 3 #region --原有的实现-- 4 //public event PropertyChangedEventHandler PropertyChanged; 5 //public void NotifyPropertyChanged(string propertyName) 6 //{ 7 // if (PropertyChanged != null) 8 // { 9 // PropertyChanged(this, new PropertyChangedEventArgs(propertyName));10 // }11 //}12 13 //private int studentId;14 15 //public int StudentId16 //{17 // get { return studentId; }18 // set { studentId = value; NotifyPropertyChanged("StudentId"); }19 //}20 21 //private string studentName;22 23 //public string StudentName24 //{25 // get { return studentName; }26 // set { studentName = value; NotifyPropertyChanged("StudentName"); }27 //}28 29 //private int studentAge;30 31 //public int StudentAge32 //{33 // get { return studentAge; }34 // set { studentAge = value; NotifyPropertyChanged("StudentAge"); }35 //}36 37 //private string studentEmail;38 39 //public string StudentEmail40 //{41 // get { return studentEmail; }42 // set { studentEmail = value; NotifyPropertyChanged("StudentEmail"); }43 //}44 45 //private string studentSex;46 47 //public string StudentSex48 //{49 // get { return studentSex; }50 // set { studentSex = value; NotifyPropertyChanged("StudentSex"); }51 //}52 #endregion53 54 #region --新的实现--55 public int StudentId { get; set; }56 public string StudentName { get; set; }57 public int StudentAge { get; set; }58 59 public string StudentEmail { get; set; }60 public string StudentSex { get; set; }61 #endregion62 }
四、ViewModel
1 public class StudentViewModel:INotifyPropertyChanged 2 { 3 4 public event PropertyChangedEventHandler PropertyChanged; 5 public void NotifyPropertyChanged(string propertyName) 6 { 7 if (PropertyChanged != null) 8 { 9 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));10 }11 }12 13 public DelegateCommand ShowCommand { get; set; }14 public StudentViewModel()15 {16 ShowCommand = new DelegateCommand();17 ShowCommand.ExecuteCommand = new Action
注:这个程序要引入自己封装的库,LiuxhCSDLL,目前这个库还不够通用,等水平提高了再来把它优化成通用的。