文章标签 ‘mvvm’

上一篇我们实现了Silverlight MVVM模式的增删改查,大家不难发现如果Command过多的话,可能造成代码过于臃肿,今天,我们来解决这个问题,我们使用一个DelegateCommand来代替所有的Command,代码如下: 我们构造Command的时候可以这样写 因为,我们的DelegateCommand是带一个参数的,所以我们每次构造都要传入一个object,这样,我们每次调用的时候只要传一个方法的参数就可以了,是不是方便了很多呢? 代码下载

2010年1月28日08:56 6 条评论

Silverlight中的MVVM设计模式,我们已经了解了,今天做一个Silverlight中的增删改查,非数据库的,目的在于让大家更深刻的认识MVVM设计模式,废话不说了,开始: 首先,我们建立一个Silverlight 3.0的项目,结构如下 接下来,我们建立用来模拟增删改查操作的数据层(Models)。 Person.cs是我们的实体类,为了保证属性修改通知,我们继承INotifyPropertyChanged类,代码如下 DataStore.cs是我们用来模拟数据存储的类,因为在Silverlight中我们采取绑定机制,数据对象修改要通知界面所以,数据集合采用了可通知的ObservableCollection集合类,同时实现了,增删改查方法,代码如下 接下来,我们建立视图层(Views),本项目一共分两个部分,一个是查询列表,一个修改、增加的界面效果如图: 我们建立两个文件PersonList.xaml(用户控件)和PersonInfo.xaml(Silverlight子窗口)。 PersonList.xaml PersonInfo.xaml 视图层建立好了,我们建立视图模块层(ViewModels),这个层的作用就是和视图层进行交流,达到视图层和业务层完全分离的部分。因为,我们有两个View,所以要建立两个ViewModel。 PersonListViewModel.cs PersonInfoViewModel.cs 接下来,我们建立Commands,视图层通过绑定机制执行命令,达到运行业务逻辑的目的。这里的命令是根据视图层的命令而定。 AddPersonCommand.cs DeletePersonCommand.cs ModifyPersonCommand.cs QueryPersonCommand.cs SavePersonCommand.cs SelectedPersonCommand.cs 接下来,我们在ViewModel里面加入这些命令 PersonListViewModel.cs PersonInfoViewModel.cs 最后,我们将ViewModel绑定到View。 PersonList.xaml.cs PersonList.xaml PersonInfo.xaml.cs PersonInfo.xaml 我们在MainPage.xaml加入代码,运行。。。 终于完了,MVVM设计模式实际上就是MVC的一种延伸,解决的目的就是视图层和业务层分离,能看完这篇文章的朋友,一定对MVVM有个深入的了解。 代码下载

2010年1月27日17:11 没有评论

MVVM模式大家应该不陌生吧,陌生的快来看看,可是WPF/Silverlight开发中,必备的设计模式。 MVVM模式解决了,我们在开发WPF/Silverlight应用程序过程中产生的业务层、表示层比较混乱问题,使表示层和业务层完全分离。 早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expression Blend。 从上图可以看出来,View表示层就是我们通常的XAML,用来表示前台界面,ViewModel视图模块层的作用用来连接业务逻辑和视图层的关键部分,通常我们发出的命令或者事件都是通过这层传送给业务逻辑层的,Model就是我们的实际数据,业务逻辑代码等。 下面我们用一个Silverlight简单例子来讲解MVVM模式 这个程序就是实现简单查询,输入ID号,查询符合结果的内容

2009年12月31日12:12 没有评论