在第一篇文章中的示例中,我们已经简单的了解了应用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(二)——提高相关推荐

  1. Silverlight中使用MVVM(9)-绑定Enum类型数据

    Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)-提高 Silverlight中使用MVVM(3)-进阶 Silverlight中使用MVVM(4)-演练 ...

  2. Silverlight中使用MVVM

    silverlight中使用MVVM http://www.cnblogs.com/626498301/archive/2010/08/17/1801475.html 转载于:https://www. ...

  3. Silverlight中使用MVVM(2)

    在第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知 ...

  4. Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...

    在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来.也可以通过 htt ...

  5. Silverlight实用窍门系列:63.Silverlight中的Command,自定义简单Command

    在Silverlight中的MVVM模式下将前台页面和ViewModel界面交互分离开是通过本节所要讲述的Command实现的.我们自定义一个Command需要继承于ICommand接口并且实现这个接 ...

  6. WPF/Silverlight中MVVM运用

    随着WPF/Silverlight等技术的出现,一种新的模式出现在大家面前,那就是MVVM,提到这个模式,大家也许感觉很迷惑,也许会不屑于故,也许你会说我现在做项目都形成了自己的框架了,为什么还要花费 ...

  7. uniapp中qrcode生成二维码后传的参数不见了_阿虚教你制作动态二维码,超详细教程!

    这篇教程很早之前就答应几个粉丝要写,拖的有点久了. 内容比较多,先上个目录 阿虚的教程会迟到,但永远不会缺席.hahahahhaha... 一. 先说一下今天要教的内容 ʕ•̫͡•ོʔ•̫͡•ཻʕ•̫ ...

  8. uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...

    作者 | 互联网平头哥 本文经授权转载自互联网平头哥(ID:it_pingtouge) 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录 ...

  9. 未来的计算机绘画图片,电脑绘画——为想象力插上科技的翅膀 二十中附校科技社团电脑绘画作品展...

    原标题:电脑绘画--为想象力插上科技的翅膀 二十中附校科技社团电脑绘画作品展 二十中附校电脑绘画卓越能力课程开展至今有近2年时间了.课程帮助学生认识绘画工具和软件.培养良好的绘画习惯.提高绘画和艺术创 ...

最新文章

  1. 【摘自】人民日款网友感悟
  2. mysql存储登录密码_当密码存储在选项文件中时,MySQL拒绝登录尝试
  3. 计算机基础课教学心得,计算机基础教学心得
  4. Eclipse如何从SVN更新和上传修改部分项目
  5. jzoj6296-投票【期望dp,贪心】
  6. ibatis中的xml配置文件
  7. s查找mysql服务_MySQL菜鸟实录(一):MySQL服务安装实战
  8. 小程序遵循的语法_我如何构建一个遵循股市针对freeCodeCamp挑战的应用程序。
  9. ode45 matlab 出错,请问,Matlab用ODE45解微分方程,出错
  10. Java VisualVM远程监控JVM
  11. 图与图算法在实际中的应用
  12. 数据库课程设计报告(仓库管理系统)
  13. 三极管什么时候工作在饱和区
  14. 无法打开包括文件: “SDKDDKVer.h”问题解决办法
  15. 在linux系统下忘记了root密码,教你在Linux系统中解决忘记root口令密码的方法
  16. 【官方教程】使用Quick-Cocos2d-x搭建一个横版过关游戏(三)
  17. 试题 基础练习 数的读法
  18. Windows下Chcp命令的用法
  19. mt4电脑版如何下载安装
  20. 3DMax 2020中文版

热门文章

  1. mysql存储过程查询实例_mysql存储过程查询实例
  2. linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...
  3. android用java_原来android不是只能用java写软件
  4. php amqp扩展安装,php扩展AMQP,安装报错解决
  5. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...
  6. 华为手机设置代理网络就无法使用_华为手机一定要了解的7个设置!1秒开启使用,实在太强大了...
  7. java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验
  8. MySQL面试题 | 附答案解析(三)
  9. PCL:基于PCL绘制包围盒基础介绍(1)
  10. PCL分割:Conditional Euclidean Clustering官方历程,在自己配置环境上调错