Silverlight中使用MVVM(2)—提高
来源:互联网 发布:网络红猫猫叔图片 编辑:程序博客网 时间:2024/05/21 06:38
现在我们主要在前面的示例上进行扩展,前面的示例中我们主要是将一个源对象绑定到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,Mode=OneWay}"Name="textBox2" VerticalAlignment="Top" Width="120" />
我们在UI上增加了2个TextBox,用于反映页面上的变化,主要就是注意一下Binding的对象
这些都完成后,其它部分就不用改动了,我们已经完成了这个功能,我们可以看看页面的效果:
单击前后的变化
功能虽较为简单,但是刚接触MVVM时, 要很顺利的实现也不算是一件容易的事情,后面我会在这个例子的基础上,通过使用Command实现一个较简单的查询。
- Silverlight中使用MVVM(2)—提高
- Silverlight中使用MVVM(2)—提高
- Silverlight中使用MvvM(2)--提高
- Silverlight中使用MVVM(2)
- Silverlight中使用MVVM(1)—基础
- Silverlight中使用MVVM(3)—进阶
- Silverlight中使用MVVM(3)—进阶
- Silverlight中使用MVVM(4)—演练
- Silverlight中使用MVVM(1)
- Silverlight中使用MVVM(3)
- Silverlight中使用MVVM(4)
- Silverlight中如何使用MVVM架构
- Silverlight中使用MvvM(1)--基础
- Silverlight中使用MvvM(3)--进阶
- Silverlight中使用MvvM(4)--演练
- Silverlight中使用MVVM(1)--基础
- SilverLight中MVVM设计模式
- [Silverlight入门系列]使用MVVM模式(1):MVVM核心概念
- Silverlight中使用MVVM(1)--基础
- JBoss EAP 6.1部署SSO
- 双节棍 单棍基础 总结
- shell 判断
- IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
- Silverlight中使用MVVM(2)—提高
- 非负的高精度整数类实现
- Visual Studio 2008 技巧
- 配置redmine
- 学术讲座:生活美学——心态度
- WcfService常用工具及问题总结
- MapReduce任务创建和分配流程
- maven nexus 里面的 snapshots 版本 数据量太多,清理方法。
- Linux 查看服务器版本相关信息