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':' ...
随机推荐
- test20190308
测试 晚上考试,是 \(SCOI\ 2016\ Day\ 2\) 的题目. 妖怪 由于之前在洛谷上用三分水过去了,就很 \(naive\) 地打了一个三分就跑了.获得 \(10\) 分好成绩. 记 \ ...
- iOS开发之html解析
使用XPath解析html 可以从此处https://github.com/topfunky/hpple下载工程,将TFHpple.h,TFHpple.m,TFHppleElement.h,TFHpp ...
- 重温CLR(十三) 定制特性
利用定制特性,可宣告式为自己的代码构造添加注解来实现特殊功能.定制特性允许为几乎每一个元数据表记录项定义和应用信息.这种可扩展的元数据信息能在运行时查询,从而动态改变代码的执行方式.使用各种.NET技 ...
- js中confirm揭示三个按钮“是”“否”“取消”
js中confirm提示三个按钮“是”“否”“取消” 重载DOM中confirm window.confirm = function(str) { str=str.replace(/\'/g, & ...
- 洛谷 P1098 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
- Hadoop 2.7.4 关闭与启动
环境说明:[root@hadp-master sbin]# hadoop versionHadoop 2.7.4 一. 脚本封装全部一起启动.关闭1.1 启动[root@hadp-master sbi ...
- c/c++程序设计涉及的一些知识点
c/c++程序设计涉及的一些知识点 c中的printf函数 main(){ int b = 3; int arr[]= {6,7,8,9,10}; int * ptr = arr; *(ptr++) ...
- PHP远程连接mysql
http://blog.chinaunix.net/uid-23215128-id-2951624.html # mysql -urootmysql> use mysql; Database c ...
- RK3288 USB触摸屏与USB摄像头同时使用时触摸卡顿
CPU:RK3288 系统:Android 5.1 当USB触摸屏与USB摄像头同时使用时,有时会出现触摸卡顿,看似按键按下没有弹起. getevent 查看触摸屏上报,只有 DOWN,没有 UP,正 ...
- 快速创建yii2 RESTful api的小记
1.复制backend的应用到同级目录,改名叫api 2.然后就是配置项修改,common和api目录下的 common下: bootstrap.php最后添加一行配置 api/config/main ...