第一次接触Binding是用到listview的时候,ListView中如果要动态显示一些内容,我一开始想的就是动态生成一个item,然后插入。。。

其实用Binding就不用在代码中涉及listview的一些控件的操作了。

下面是我用ListView显示图片的一个例子:

[html] view plaincopyprint?
  1. <ListView x:Name="ImageList" ">
  2. <ListView.ItemTemplate >
  3. <DataTemplate>
  4. <Image Opacity="0.7" Width="150" Height="125" Stretch="UniformToFill" Source="{Binding}" />
  5. </DataTemplate>
  6. </ListView.ItemTemplate>
  7. </ListView>

在Image中定义了Source=“Binding”以后,我们在代码中需要定义一个ObservableCollection对象,这个对象是专门来同步绑定GridView,ListView这些控件的。

[csharp] view plaincopyprint?
  1. this.collImages = new ObservableCollection<BitmapImage>();
  2. this.ImageList.ItemsSource = collImages;

就这么简单,后面就只要在collImages中插入图片就可以了。

但是,问题是:我如果想一个item既包含图片又包含图片相关的文字。如何进行数据的绑定呢?

仔细看看上面ObservableCollection对象,就像数组一样定义了类型,上面我定义的时BitmapImage类型;如果写成string型,那么关联的就是一些文字对象了。

所以只要自己写一个类,包含图片和文字的属性,定义这样的一个类型实现数据绑定就可以了:

[csharp] view plaincopyprint?
  1. /// <summary>
  2. /// A class that can be used to bind data containing text and image.
  3. /// </summary>
  4. public class MyListViewData
  5. {
  6. public BitmapImage bitImg  { get; set; }
  7. public string strName { get; set; }
  8. public MyListViewData(BitmapImage img, string name)
  9. {
  10. bitImg = img;
  11. strName = name;
  12. }
  13. }

在绑定的时候,也要说明一下,在Image和TextBlock中分别Binding的是bitImg和strName:

[html] view plaincopyprint?
  1. <ListView x:Name="ImageList" ">
  2. <ListView.ItemTemplate >
  3. <DataTemplate>
  4. <StackPanel Width="100" Height="100">
  5. <Image Opacity="0.7"  Source="{Binding bitImg}" />
  6. <TextBlock Height="25" Text="{Binding strName}"  />
  7. </StackPanel>
  8. </DataTemplate>
  9. </ListView.ItemTemplate>
  10. </ListView>

接下来就是定义一个ObservationCollection对象,就可以动态绑定了

[csharp] view plaincopyprint?
  1. ObservableCollection<MyListViewData> listViewData = new ObservableCollection<MyListViewData>();
  2. this.ImageList.ItemsSource = pMainPage.listViewData;
  3. listViewData.Add(new MyListViewData(videoImg, file.Name));

好的,下面是一个效果图:

win8+XAML Binding(数据绑定)相关推荐

  1. win8(四)实例讲解win8(XAML+C#)开发--------课程表:Snapped模式和动态磁贴,徽章(badge)

    免责声明:本文章由fengyun1989创作,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可. 到这里,我们已经拥有一个不错的程序,可以数据的增删改,可以看到当前的课表 ...

  2. WP7之题样式与数据绑定

    Windows Phone 主题 1. 用户可以客户化主题 用户可以自己选择明亮或灰暗的背景: Windows Phone系统本身提供了10种主题颜色(accent colors)可供选择: 2. S ...

  3. WPF中的Data Binding调试指南

    点击蓝字"大白技术控"关注我哟 加个"星标★",每日良时,好文必达! WPF中的Data Binding如何Debug? 大家平时做WPF开发,相信用Visua ...

  4. WP8.1学习系列(第二十三章)——到控件的数据绑定

    在本文中 先决条件 将控件绑定到单个项目 将控件绑定到对象的集合 通过使用数据模板显示控件中的项目 添加详细信息视图 转换数据以在控件中显示 相关主题 本主题介绍了如何在使用 C++.C# 或 Vis ...

  5. WIN8相关资源汇总

    WIN8相关资源汇总 WIN8发布已有一段时间了,但是网上的资料参差不齐,新学者想要学习WIN8系统的使用和开发总要到处搜索.这里将本人搜到的一些WIN8相关资源整理一番,供大家学习参考.特别申明下, ...

  6. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日-9月30日)

    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日-9月30日) 本周Silverlight学习资源更新 解决"Chrome提示:Silverligh ...

  7. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月23日-7月29日)

    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月23日-7月29日) 本周Silverlight学习资源更新 Silverlight OOB模式下COOKIE处理 ...

  8. Silverlight 5 Beta 新特性预览

    MIX11大会昨天刚刚结束.第二天核心Session包含三个部分:Windows phone 7/Silverlight 5 Beta/Kinect for Windows SDK.在整个全程直播中. ...

  9. 分享Silverlight/WPF/Windows Phone一周学习导读(06月13日-06月18日)

    分享Silverlight/WPF/Windows Phone一周学习导读 本周Silverlight学习资源更新: 小D学blend-----优美简洁的mp3播放器 D调の幸福 Silverligh ...

最新文章

  1. 开发者,什么是你真正关心的问题?| AI ProCon 2019
  2. php childnodes,小tips:HTML DOM中的children和childNodes属性
  3. golang插入字符串_golang 几种字符串的连接方式
  4. C语言中定义变量位置
  5. [转载] JAVA面试题大全(part_1)
  6. 怎样才算得上合格的程序员,教你一招
  7. 域控制器服务器的管理维护,域控制器管理 向备份要安全(图)
  8. 简洁自适应个人码农主页源码
  9. docker容器数据卷基本操作
  10. CentOS7安装VirtualBox
  11. 夺命雷公狗---PDO NO:13 PDO的预处理查询4
  12. 1-n整数中1出现的次数
  13. 在构建好XPE操作系统上增加EWF功能
  14. 【撸大湿】Storm 分布式BP神经网络(开源)
  15. 可以边下边看的BT资源搜索下载工具:Tribler免费版
  16. maven的下载安装,setting.xml配置教程,Idea 配置maven
  17. Robotium 介绍
  18. Redis常用命令速查
  19. 刚体运动学-四元数插值
  20. 智能家居DIY之智能插座

热门文章

  1. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
  2. 【错误记录】C 语言中通过指针操作字符串常量出错记录 ( 只有 栈内存 或 堆内存 中的数据才能通过指针修改 | 不要通过指针修改常量区的字符串 )
  3. 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
  4. 【错误记录】MAC 存储空间 “其它“ 内容清理
  5. 【错误记录】Kotlin 1.5.0 编译报错 ( 1.5.0 中 Float 不能直接转 Byte 类型 )
  6. 【Android 高性能音频】高性能音频简介 ( 高性能音频问题引入 | 使用场景 | 相关开发库及技术 )
  7. 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
  8. python之运算符
  9. 简单多边形与圆交面积模板
  10. java BASE64流 输出图片。