win8+XAML Binding(数据绑定)
第一次接触Binding是用到listview的时候,ListView中如果要动态显示一些内容,我一开始想的就是动态生成一个item,然后插入。。。
其实用Binding就不用在代码中涉及listview的一些控件的操作了。
下面是我用ListView显示图片的一个例子:
- <ListView x:Name="ImageList" ">
- <ListView.ItemTemplate >
- <DataTemplate>
- <Image Opacity="0.7" Width="150" Height="125" Stretch="UniformToFill" Source="{Binding}" />
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
在Image中定义了Source=“Binding”以后,我们在代码中需要定义一个ObservableCollection对象,这个对象是专门来同步绑定GridView,ListView这些控件的。
- this.collImages = new ObservableCollection<BitmapImage>();
- this.ImageList.ItemsSource = collImages;
就这么简单,后面就只要在collImages中插入图片就可以了。
但是,问题是:我如果想一个item既包含图片又包含图片相关的文字。如何进行数据的绑定呢?
仔细看看上面ObservableCollection对象,就像数组一样定义了类型,上面我定义的时BitmapImage类型;如果写成string型,那么关联的就是一些文字对象了。
所以只要自己写一个类,包含图片和文字的属性,定义这样的一个类型实现数据绑定就可以了:
- /// <summary>
- /// A class that can be used to bind data containing text and image.
- /// </summary>
- public class MyListViewData
- {
- public BitmapImage bitImg { get; set; }
- public string strName { get; set; }
- public MyListViewData(BitmapImage img, string name)
- {
- bitImg = img;
- strName = name;
- }
- }
在绑定的时候,也要说明一下,在Image和TextBlock中分别Binding的是bitImg和strName:
- <ListView x:Name="ImageList" ">
- <ListView.ItemTemplate >
- <DataTemplate>
- <StackPanel Width="100" Height="100">
- <Image Opacity="0.7" Source="{Binding bitImg}" />
- <TextBlock Height="25" Text="{Binding strName}" />
- </StackPanel>
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
接下来就是定义一个ObservationCollection对象,就可以动态绑定了
- ObservableCollection<MyListViewData> listViewData = new ObservableCollection<MyListViewData>();
- this.ImageList.ItemsSource = pMainPage.listViewData;
- listViewData.Add(new MyListViewData(videoImg, file.Name));
好的,下面是一个效果图:
win8+XAML Binding(数据绑定)相关推荐
- win8(四)实例讲解win8(XAML+C#)开发--------课程表:Snapped模式和动态磁贴,徽章(badge)
免责声明:本文章由fengyun1989创作,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可. 到这里,我们已经拥有一个不错的程序,可以数据的增删改,可以看到当前的课表 ...
- WP7之题样式与数据绑定
Windows Phone 主题 1. 用户可以客户化主题 用户可以自己选择明亮或灰暗的背景: Windows Phone系统本身提供了10种主题颜色(accent colors)可供选择: 2. S ...
- WPF中的Data Binding调试指南
点击蓝字"大白技术控"关注我哟 加个"星标★",每日良时,好文必达! WPF中的Data Binding如何Debug? 大家平时做WPF开发,相信用Visua ...
- WP8.1学习系列(第二十三章)——到控件的数据绑定
在本文中 先决条件 将控件绑定到单个项目 将控件绑定到对象的集合 通过使用数据模板显示控件中的项目 添加详细信息视图 转换数据以在控件中显示 相关主题 本主题介绍了如何在使用 C++.C# 或 Vis ...
- WIN8相关资源汇总
WIN8相关资源汇总 WIN8发布已有一段时间了,但是网上的资料参差不齐,新学者想要学习WIN8系统的使用和开发总要到处搜索.这里将本人搜到的一些WIN8相关资源整理一番,供大家学习参考.特别申明下, ...
- Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日-9月30日)
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日-9月30日) 本周Silverlight学习资源更新 解决"Chrome提示:Silverligh ...
- Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月23日-7月29日)
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月23日-7月29日) 本周Silverlight学习资源更新 Silverlight OOB模式下COOKIE处理 ...
- Silverlight 5 Beta 新特性预览
MIX11大会昨天刚刚结束.第二天核心Session包含三个部分:Windows phone 7/Silverlight 5 Beta/Kinect for Windows SDK.在整个全程直播中. ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(06月13日-06月18日)
分享Silverlight/WPF/Windows Phone一周学习导读 本周Silverlight学习资源更新: 小D学blend-----优美简洁的mp3播放器 D调の幸福 Silverligh ...
最新文章
- 开发者,什么是你真正关心的问题?| AI ProCon 2019
- php childnodes,小tips:HTML DOM中的children和childNodes属性
- golang插入字符串_golang 几种字符串的连接方式
- C语言中定义变量位置
- [转载] JAVA面试题大全(part_1)
- 怎样才算得上合格的程序员,教你一招
- 域控制器服务器的管理维护,域控制器管理 向备份要安全(图)
- 简洁自适应个人码农主页源码
- docker容器数据卷基本操作
- CentOS7安装VirtualBox
- 夺命雷公狗---PDO NO:13 PDO的预处理查询4
- 1-n整数中1出现的次数
- 在构建好XPE操作系统上增加EWF功能
- 【撸大湿】Storm 分布式BP神经网络(开源)
- 可以边下边看的BT资源搜索下载工具:Tribler免费版
- maven的下载安装,setting.xml配置教程,Idea 配置maven
- Robotium 介绍
- Redis常用命令速查
- 刚体运动学-四元数插值
- 智能家居DIY之智能插座
热门文章
- 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
- 【错误记录】C 语言中通过指针操作字符串常量出错记录 ( 只有 栈内存 或 堆内存 中的数据才能通过指针修改 | 不要通过指针修改常量区的字符串 )
- 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
- 【错误记录】MAC 存储空间 “其它“ 内容清理
- 【错误记录】Kotlin 1.5.0 编译报错 ( 1.5.0 中 Float 不能直接转 Byte 类型 )
- 【Android 高性能音频】高性能音频简介 ( 高性能音频问题引入 | 使用场景 | 相关开发库及技术 )
- 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
- python之运算符
- 简单多边形与圆交面积模板
- java BASE64流 输出图片。