经常我们需要绑定的数据有多个,当添加到集合控件的对象类型结构比较复杂,我们希望自己来定义排版布局,这时可以使用ItemTemplate用资源的定义

现在有数据

  1. public class caddressBook
  2. {
  3. public caddressBook()
  4. {
  5. }
  6. /// <summary>
  7. /// 标识符
  8. /// </summary>
  9. public string id
  10. {
  11. set;
  12. get;
  13. }
  14. /// <summary>
  15. /// 通讯人姓名
  16. /// </summary>
  17. public string name
  18. {
  19. set;
  20. get;
  21. }
  22. /// <summary>
  23. /// 联系方式
  24. /// </summary>
  25. public string contact
  26. {
  27. set;
  28. get;
  29. }
  30. /// <summary>
  31. /// 工作地点
  32. /// </summary>
  33. public string address
  34. {
  35. set;
  36. get;
  37. }
  38. /// <summary>
  39. /// 城市
  40. /// </summary>
  41. public string city
  42. {
  43. set;
  44. get;
  45. }
  46. /// <summary>
  47. /// 备注
  48. /// </summary>
  49. public string comment
  50. {
  51. set;
  52. get;
  53. }
  54. }

我们在MainPage.xaml用

  1. <Page.Resources>
  2. <DataTemplate x:Key="xaddressBook">
  3. <Grid>
  4. <Grid.ColumnDefinitions>
  5. <ColumnDefinition Width="auto"/>
  6. <ColumnDefinition Width="auto"/>
  7. <ColumnDefinition Width="auto"/>
  8. <ColumnDefinition Width="auto"/>
  9. <ColumnDefinition Width="auto"/>
  10. </Grid.ColumnDefinitions>
  11. <!--通讯人姓名、联系方式、工作地点、城市、备注-->
  12. <TextBlock Grid.Column="0" >
  13. 通讯人姓名:
  14. <Run Text="{Binding name}"/>
  15. <LineBreak/>
  16. 联系方式:
  17. <Run Text="{Binding contact}"/>
  18. <LineBreak/>
  19. 工作地点:
  20. <Run Text="{Binding address}"/>
  21. <LineBreak/>
  22. 城市:
  23. <Run Text="{Binding city}"/>
  24. <LineBreak/>
  25. 备注:
  26. <Run Text="{Binding remark}"/>
  27. <LineBreak/>
  28. </TextBlock>
  29. </Grid>
  30. </DataTemplate>
  31. </Page.Resources>

列表

  1. <ListView ItemTemplate="{StaticResource xaddressBook}" ItemsSource="{x:Bind view.addressBook,Mode=OneWay}"/>

使用System.Collections.ObjectModel.ObservableCollection来作为list资源。

viewModel

  1. public System.Collections.ObjectModel.ObservableCollection<caddressBook> addressBook
  2. {
  3. set;
  4. get;
  5. }
  6. = new System.Collections.ObjectModel.ObservableCollection<caddressBook>()
  7. {
  8. new caddressBook()
  9. {
  10. name ="张三",
  11. contact ="1",
  12. address ="中国",
  13. city =" ",
  14. comment =" "
  15. } ,
  16. new caddressBook()
  17. {
  18. name ="张三",
  19. contact ="1",
  20. address ="中国",
  21. city =" ",
  22. comment =" "
  23. }
  24. };

因为想一个名字不是很简单,我就使用contact 不同来认为是不同的

修改addressBook前台会更新,ObservableCollection是包含了INotifyPropertyChanged

  1. /// <summary>
  2. /// 修改
  3. /// </summary>
  4. public void modify()
  5. {
  6. var taddressBook = new caddressBook()
  7. {
  8. name = "张三" ,
  9. contact = "2" ,
  10. address = "中国" ,
  11. city = " " ,
  12. comment = " "
  13. };
  14. addressBook.Add(taddressBook);
  15. }

代码:https://code.csdn.net/lindexi_gd/lindexi_gd/tree/master/observable_collection

win10 uwp 绑定多数据的更多相关文章

  1. win10 uwp 绑定密码

    win10 下,密码框无法绑定到ViewModel,Password是不可以绑定. 我们可以自己使用简单方法去绑定 我们之前在WPF 使用绑定密码框,我写了一篇,关于如何绑定,我提供一个我自己试了可以 ...

  2. win10 uwp 绑定静态属性

    Jasoon 大神问,如何绑定静态属性. 我们经常有静态属性,那么我们如何绑定 假如我们的ViewModel有一个静态属性 public static string CVTE { set; get; ...

  3. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  4. Win10 UWP开发系列:实现Master/Detail布局

    在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...

  5. Win10 UWP应用发布流程

    简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...

  6. win10 uwp MVVM 轻量框架

    如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...

  7. win10 uwp DataContext

    本文告诉大家DataContext的多种绑法. 适合于WPF的绑定和UWP的绑定. 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用.当然,可以在新手面前秀下,一个页面 ...

  8. win10 uwp 商业游戏

    本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...

  9. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

随机推荐

  1. java中null的类型匹配

    null作为一个特殊的参数匹配为String对象

  2. java课程设计--We Talk(201521123061)

    java课程设计--We Talk(201521123061) 团队博客链接:http://www.cnblogs.com/slickghost/ 数据库 一.通过Dao模式建立与数据库的连接 1.数 ...

  3. 201521123040《Java程序设计》第1周学习总结

    1.本周学习总结 -初步接触JAVA,安装了JDK和eclipse,注册了码云,PTA,博客. -还没能熟悉eclipse,不能熟练把ec上的代码同步到码云. -不会编写程序,不了解JAVA的编写规则 ...

  4. java课程设计--猜数字(团队博客)

    java课程设计--猜数字(团队博客) 1.团队名称以及团队成员介绍 团队名称:cz 团队成员:陈伟泽,詹昌锦 团队照片: 2.项目git地址 http://git.oschina.net/Devil ...

  5. 201521123005《Java程序设计》第十三周学习总结

    1. 本周学习总结 1.网络基本概念 2.网络常用命令 ipconfig 查看网络配置信息,如ip地址 ping 测试网络是否连通 telnet 远程登录 ftp 登陆ftp Fport (xp下)查 ...

  6. yum仓库管理

    yum在线管理 rpm包的管理分为 rpm命令管理和yum在线管理,rpm命令管理由于可能需要解决各种依赖问题,在安装软件的时候可能显得比较麻烦,然而,yum在线管理正好和它相反.Yum(全称为 Ye ...

  7. IDEA配置Tomcat

    如何用IDEA写Servlet在我别的博文有! 注意:如果不能成功启动Tomcat,很有可能是JDK版本和Tomcat版本不匹配,此时你可以降低JDK版本试试

  8. 关于APP分享到QQ、微信等

    <script> var shares=null;        var Intent=null,File=null,Uri=null,main=null; function plusRe ...

  9. [实战演练]python3使用requests模块爬取页面内容

    本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...

  10. iOS 多人共享开发证书

    当多人开发时,如果已经申请了几个开发者证书和发布者证书,苹果就不允许再创建了,页面添加的地方被灰化了,所以不可能每个人都建一个开发证书,这时候需要共用一个证书了.(其实一般在我们的证书界面中应该只有一 ...