二、Silverlight中使用MVVM(二)——提高
在第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知识的,当然整个例子学完后,我们会回过头探讨一下,将其总结出来。
现在我们主要在前面的示例上进行扩展,前面的示例中我们主要是将一个源对象绑定到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实现一个较简单的查询。
转载于:https://www.cnblogs.com/liuguanghai/p/3225975.html
二、Silverlight中使用MVVM(二)——提高相关推荐
- Silverlight中使用MVVM(9)-绑定Enum类型数据
Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)-提高 Silverlight中使用MVVM(3)-进阶 Silverlight中使用MVVM(4)-演练 ...
- Silverlight中使用MVVM
silverlight中使用MVVM http://www.cnblogs.com/626498301/archive/2010/08/17/1801475.html 转载于:https://www. ...
- Silverlight中使用MVVM(2)
在第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知 ...
- Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...
在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来.也可以通过 htt ...
- Silverlight实用窍门系列:63.Silverlight中的Command,自定义简单Command
在Silverlight中的MVVM模式下将前台页面和ViewModel界面交互分离开是通过本节所要讲述的Command实现的.我们自定义一个Command需要继承于ICommand接口并且实现这个接 ...
- WPF/Silverlight中MVVM运用
随着WPF/Silverlight等技术的出现,一种新的模式出现在大家面前,那就是MVVM,提到这个模式,大家也许感觉很迷惑,也许会不屑于故,也许你会说我现在做项目都形成了自己的框架了,为什么还要花费 ...
- uniapp中qrcode生成二维码后传的参数不见了_阿虚教你制作动态二维码,超详细教程!
这篇教程很早之前就答应几个粉丝要写,拖的有点久了. 内容比较多,先上个目录 阿虚的教程会迟到,但永远不会缺席.hahahahhaha... 一. 先说一下今天要教的内容 ʕ•̫͡•ོʔ•̫͡•ཻʕ•̫ ...
- uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...
作者 | 互联网平头哥 本文经授权转载自互联网平头哥(ID:it_pingtouge) 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录 ...
- 未来的计算机绘画图片,电脑绘画——为想象力插上科技的翅膀 二十中附校科技社团电脑绘画作品展...
原标题:电脑绘画--为想象力插上科技的翅膀 二十中附校科技社团电脑绘画作品展 二十中附校电脑绘画卓越能力课程开展至今有近2年时间了.课程帮助学生认识绘画工具和软件.培养良好的绘画习惯.提高绘画和艺术创 ...
最新文章
- 【摘自】人民日款网友感悟
- mysql存储登录密码_当密码存储在选项文件中时,MySQL拒绝登录尝试
- 计算机基础课教学心得,计算机基础教学心得
- Eclipse如何从SVN更新和上传修改部分项目
- jzoj6296-投票【期望dp,贪心】
- ibatis中的xml配置文件
- s查找mysql服务_MySQL菜鸟实录(一):MySQL服务安装实战
- 小程序遵循的语法_我如何构建一个遵循股市针对freeCodeCamp挑战的应用程序。
- ode45 matlab 出错,请问,Matlab用ODE45解微分方程,出错
- Java VisualVM远程监控JVM
- 图与图算法在实际中的应用
- 数据库课程设计报告(仓库管理系统)
- 三极管什么时候工作在饱和区
- 无法打开包括文件: “SDKDDKVer.h”问题解决办法
- 在linux系统下忘记了root密码,教你在Linux系统中解决忘记root口令密码的方法
- 【官方教程】使用Quick-Cocos2d-x搭建一个横版过关游戏(三)
- 试题 基础练习 数的读法
- Windows下Chcp命令的用法
- mt4电脑版如何下载安装
- 3DMax 2020中文版
热门文章
- mysql存储过程查询实例_mysql存储过程查询实例
- linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...
- android用java_原来android不是只能用java写软件
- php amqp扩展安装,php扩展AMQP,安装报错解决
- java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...
- 华为手机设置代理网络就无法使用_华为手机一定要了解的7个设置!1秒开启使用,实在太强大了...
- java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验
- MySQL面试题 | 附答案解析(三)
- PCL:基于PCL绘制包围盒基础介绍(1)
- PCL分割:Conditional Euclidean Clustering官方历程,在自己配置环境上调错