【发布时间】:2012-08-16 16:22:53
【问题描述】:
DataGrid 可以绑定到 Collection<List> 类型吗?
有几个关于将DataGrid 绑定到Collection<Collection> 的问题,它也对我有用。但是,我正在寻找 DataGrid Collection<List>。
当我尝试时,List 只是在DataGrid 上显示为一个对象,例如:
姓名
- System.Collections.Generic.List'1[System.Int32]
值
鲍勃
23
43000
+ System.Collections.Generic.List'1[System.Int32]
在这种情况下,List 与 Collection 有何不同?
List 没有条目标识符,因此列表中的条目无法自动分组到 DataGrid 中的列中。
示例:
在Collection<List>:
entry1 包含 List: "Bob", 23, 43000 和
entry2 包含 List: "Alice", 42, 71000。
我能否将DataTemplate 用于List 以获得以下显示?
姓名 |年龄 |工资
鲍勃 | 23 | 43000
爱丽丝 | 42 | 71000
请注意,字符串 Name、Age 和 Salary 不是 Lists 的一部分。
我的计划
- 将标题行绑定到
List<String>,以获取DataGrid's标题中的列名。 - 将剩余行绑定到
Collection<List>,以获取DataGrid中填充的数据。
具体来说,我想知道是否可以将这 3 个字符串(姓名、年龄、工资)放入 List<String> 并仅将标题行绑定到它。 DataGrid 的其余行可以绑定到 Collection。
这可能吗?
理想情况下,我想使用 Infragistics'
XamDataGrid,但 DataGrid 的任何解决方案都是一个很好的起点。
编辑
我为什么不用Collection<Employee>?
我只想在DataGrid 中显示列的子集。
我有大约 5 个屏幕,显示来自 Employee 和 EmployeeDetails 两种类型的列。这两种类型都有大约 100 个不同的属性,我只对在每个屏幕上将大约 20 个属性显示为列感兴趣。因此,我为每个仅包含这 20 个属性的 Employee/EmployeeDetails 对象创建了一个 List。
子集是在运行时通过读取一些配置文件来定义的。因此,我无法静态定义我需要展示的内容。
【问题讨论】:
标签: wpf data-binding wpfdatagrid infragistics