现在我们主要在前面的示例上进行扩展,前面的示例中我们主要是将一个源对象绑定到DataGrID中的,接下来我们继续使用MVVM模式,将DataGrID选择行的变化体现界面中,其实通过这个需求变化,你会发现UI与逻辑分离带来的优势,尽管才开始似乎有点不习惯,但是相信你会不自觉的在项目倾向于中使用MVVM模式。
需求:通过单击DataGrID,将当前的选择行的数据反映到TextBox中。
Model未发生变化,我们还用前面的Person.cs和Persons.cs两个类,那么对于viewmodel,我们给其增加一个属性
private Person _getonePerson;
public Person GetonePerson
{get { return _getonePerson; }set { _getonePerson = value;if (PropertyChanged != null){PropertyChanged(this,new PropertyChangedEventArgs("GetonePerson"));}}
因为这里的属性将发生变化,所以我们对Pageviewmodel类实现了INotifyPropertyChanged借口
UI层: 这里我们将GetonePerson属性绑定到DataGrID的SelectedItem属性上
<data:DataGrID autoGenerateColumns="True" ItemsSource="{Binding Human}"SelectedItem="{Binding GetonePerson,Mode=TwoWay}"Height="200" name="dataGrID1" VerticalAlignment="top" /><TextBox Text="{Binding GetonePerson.age,Mode=OneWay}"name="textBox1" VerticalAlignment="top" WIDth="120" /><TextBox Text="{Binding GetonePerson.name,monospace; Font-size:11px"> name="textBox2" VerticalAlignment="top" WIDth="120" />
我们在UI上增加了2个TextBox,用于反映页面上的变化,主要就是注意一下Binding的对象
这些都完成后,其它部分就不用改动了,我们已经完成了这个功能,我们可以看看页面的效果:
单击前后的变化
功能虽较为简单,但是刚接触MVVM时, 要很顺利的实现也不算是一件容易的事情,后面我会在这个例子的基础上,通过使用Command实现一个较简单的查询。
总结以上是内存溢出为你收集整理的Silverlight中使用MVVM(2)—提高全部内容,希望文章能够帮你解决Silverlight中使用MVVM(2)—提高所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)