之前刚刚学了asp.net网站的三层架构,为其中的优点着迷,可惜寒假本来决定学下MVC的计划泡汤了,刚开学,学了下windows phone 的MVVM模式的开发,在此留下点心得和脚印,第一天只是学了简单的数据绑定,接下来再学学Command的实现,MVVM模式也就是View,Model和ViewModel这三层,具体的关系自己百度,我也不大懂,只知道和之前学的三层差不多,所以领悟还是有点快的吧,哈哈。
其中我学习过程源码的下载地址为:http://files.cnblogs.com/xmfdsh/MVVMtest.rar
好吧,一个个来,首先当然是model层啦,这个就不解释了,直接上代码
namespace MVVMtest.Model { public class Student { //学号 public string number { get; set; } //姓名 public string name { get; set; } //专业 public string major { get; set; } } }
上面那个真的就不解释了,因为没什么要解释,如果这个不懂还是了解下三层吧,不过直接学MVVM一样可以我觉得,接下来就是ViewModel层,这个层个人觉得和网站的一些业务逻辑层差不多,第一天我就弄个了简单的
namespace MVVMtest.ViewModel { public class StudentViewModel { //学生的集合,ObservableCollection这个东西和C#中泛型一样,只不过应该是用在windows phone里面的吧,应该,因为别的地方我没见过,学MVVM第一次遇到 private ObservableCollection<Student> myList; //集合属性 public ObservableCollection<Student> MyList { get { if (myList == null) myList = new ObservableCollection<Student>(); return myList; } set { if (myList != value) { myList = value; NotifyPropertyChanged("MyList"); } } } //初始化ViewModel层,赋值,这里的赋值可以用函数去赋值,灵活处理自己改啦 public StudentViewModel() { try { Student item = ", name = "小红", major = "软件工程" }; Student item1 = ", name = "小红", major = "软件工程" }; Student item2 = ", name = "小白", major = "网络工程" }; Student item3 = ", name = "小黑", major = "经济管理" }; Student item4 = ", name = "小灰", major = "计算机技术" }; MyList.Add(item); MyList.Add(item1); MyList.Add(item2); MyList.Add(item3); MyList.Add(item4); } catch(Exception e) { System.Windows.MessageBox.Show("EXCEPTION:" + e.Message); } } //定义属性改变事件 public event PropertyChangedEventHandler PropertyChanged;//这个是监督变量的事件,个人觉得比较重要,可以深入了解下 //实现属性改变的事件 public void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(propertyName)); } } } }
接下来就是View层了,这个就是视图的意思嘛,好,直接上一个.xaml页面文件,随便弄个了不怎么好看的,哈哈,见谅
<Grid x:Name=" Margin="12,0,12,0"> <ListBox x:Name="listBox" HorizontalAlignment="Stretch" ItemsSource="{Binding MyList}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="> <TextBlock Text="></TextBlock> <TextBlock Text="></TextBlock> <TextBlock Text="></TextBlock> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid>
当然啦,这个.xaml文件的上面就不要忘记这些东东
xmlns:my="clr-namespace:MVVMtest.ViewModel" 。 。 。 <phone:PhoneApplicationPage.Resources> <my:StudentViewModel x:Key="student"></my:StudentViewModel> </phone:PhoneApplicationPage.Resources>
第一天的简单讲解也就到这里了,上面有源码地址,大家可以学习交流哦,我也刚入门的说。。。。