WPF 绑定以基础数据类型为集合的无字段名的数据源
WPF 绑定以基础数据类型为集合的无字段名的数据源
运行环境:Window7 64bit,.NetFramework4.61,C# 6.0; 编者:乌龙哈里 2017-02-21
我们在控件的数据绑定中经常是给定一个类,比如下面类似的:
Class Student
{
public int code;
public string name;
public int score;
}
然后用 List<Student> 或者 Student[] 来当作数据源,只要在绑定中的指定字段名就成了,如 {Binding code} 之类的。
但是,我们经常会碰到以基础数据类型,如 int 、string 之类为集合的无字段名的动态数据源,比如 List< int[ ] > 这样的,该如何绑定呢?
其实也简单,直接指定 T 的索引,{Binding [0]},{Binding [1]} 如此写。如下示列代码:
示例1(前端绑定):
前端 XAML 代码片段:
<ListView Name="lsvList" >
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="a" DisplayMemberBinding="{Binding [0]}"/>
<GridViewColumn Header="b" DisplayMemberBinding="{Binding [1]}"/>
<GridViewColumn Header="c" DisplayMemberBinding="{Binding [2]}"/>
<GridViewColumn Header="d" DisplayMemberBinding="{Binding [3]}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
后端 C# 代码片段:
List<int[]> list = new List<int[]>();
int[] arr = new int[] { 1, 2, 3, 4 };
list.Add(arr);
arr = new int[] { 3, 4, 5, 6 };
list.Add(arr);
lsvList.ItemsSource = list;
运行结果如图:

示例2(后端用C#代码实现绑定):
前端XAML代码片段:
<ListView Name="lsvList" >
</ListView>
后端C#代码片段:
List<int[]> list = new List<int[]>();
int[] arr = new int[] { 1, 2, 3, 4 };
list.Add(arr);
arr = new int[] { 3, 4, 5, 6 };
list.Add(arr);
GridView gv = new GridView();
for (int i = 0; i < 4; i++)
{
GridViewColumn col = new GridViewColumn() { Header = headlist[i], DisplayMemberBinding = new Binding($"[{i}]") };
gv.Columns.Add(col);
}
lsvList.View = gv;
lsvList.ItemsSource = list;
WPF 绑定以基础数据类型为集合的无字段名的数据源的更多相关文章
- Python基础数据类型之集合
Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...
- Python基础数据类型之集合以及其他和深浅copy
一.基础数据类型汇总补充 list 在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...
- 基础数据类型之集合和深浅copy,还有一些数据类型补充
集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...
- Py西游攻关之基础数据类型(五)-集合
Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 八 集合(set) 集合是一个无序的,不 ...
- 07、python的基础-->数据类型、集合、深浅copy
一.数据类型 1.列表 lis = [11, 22, 33, 44, 55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 del li ...
- 基础数据类型(set集合)
认识集合 由一个或多个确定的元素所构成的整体叫做集合. 集合中的元素有三个特征: 1.确定性(集合中的元素必须是确定的) 2.互异性(集合中的元素互不相同.例如:集合A={1,a},则a不能等于1) ...
- Python - 基础数据类型 set 集合
集合的简介 集合是一个无序.不重复的序列 它的基本用法包括成员检测和消除重复元素 集合对象也支持像 联合,交集,差集,对称差分等数学运算 集合中所有的元素放在 {} 中间,并用逗号分开 集合的栗子 这 ...
- python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)
列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...
- day 7 - 1 集合、copy及基础数据类型汇总
集合:{},可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复.(不重要)集合的书写 set1 = set({1,2,3}) #set2 = {1,2,3,[2,3],{'name':' ...
随机推荐
- 求整数A和B的二进制表示中有多少位是不同?
如果有题目要求整数A和B二进制表示中多少位是不同的? 那我们要先考虑一个unsigned类型中变量1的个数?我们可以考虑简单的移位运算,向右移位,我们进行判断如果不是1直接丢掉,使用&运算符即 ...
- HihoCoder1164 随机斐波那契(概率DP)
描述 大家对斐波那契数列想必都很熟悉: a0 = 1, a1 = 1, ai = ai-1 + ai-2,(i > 1). 现在考虑如下生成的斐波那契数列: a0 = 1, ai = aj + ...
- BZOJ1085 SCOI2005 骑士精神【IDA* 启发式迭代加深】
BZOJ1085 SCOI2005 骑士精神 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐 ...
- C#中的依赖注入那些事儿
目录 目录 1 IGame游戏公司的故事 1.1 讨论会 1.2 实习生小李的实现方法 1.3 架构师的建议 1.4 小李的小结 2 探究依赖注入 2.1 故事的启迪 2.2 正式定义依赖注入 3 依 ...
- linux中sar的详细使用
在使用UNIX操作系统的过程中,我们常常会用到各种各样的问题,比如系统运行速度突然变慢,系统容易死机或者主机所带的终端常出现死机,这时我们常常猜测,是硬盘空间太小,还是内存不足?I/O出现瓶颈,或者是 ...
- nginx+php测试时显示 502 bad gateway的解决方法
http://www.apelearn.com/study_v2/chapter18.html 由于阿铭老师的PHP版本是 5.3的 我装了 5.5 测试出现了 502 错误 查看日志 借助 ...
- Unit05: JavaScript对象概述 、 常用内置对象一 、 常用内置对象二 、 常用内置对象三
Unit05: JavaScript对象概述 . 常用内置对象一 . 常用内置对象二 . 常用内置对象三 常用内置对象使用演示: <!DOCTYPE html> <html> ...
- php通过Mysqli和PDO连接mysql数据详解
前言 在实际开发中,关于数据库操作类,很少是自己去写,大多是通过一些框架去实现,突然自己去写,还是需要借阅手册之类,于是我觉得有必要去总结一下,php连接mysql的方法,php连接mysql,可以通 ...
- (转)Inno Setup入门(二十)——Inno Setup类参考(6)
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17251041 存储框 存储框也是典型的窗口可视化组件,同编辑框类似, ...
- RTMP(实时信息传输协议)详解
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing) ...