在WPF DataGrid自动生成的列中使用CellTemplateSelector强制DataTemplateCell
-
28-10-2019 - |
题
我有一个将DataTable绑定到的数据网格。我不知道数据表中将包含哪些行或列,因此我将数据网格的AutogenerateColumns属性设置为true。我唯一确定的是,数据表中的每个单元格都将是Field类型,而Field类具有一个名为Type的枚举属性。 通用标签
我要执行的是强制将所有自动生成的列设置为DataTemplateColumns,并将CellTemplateSelector属性设置为FieldCellTemaplateSelector对象。为此,我将以下代码添加到AutoGeneratingColumn事件中: 通用标签
FieldCellTemplateSelector类的代码如下: 通用标签
在SelectTemplate方法中,我需要获取单元格中包含的Field对象,并基于该字段的Type属性返回相关的数据模板。问题在于所传递的item参数不是Field类型,而是DataRowView类型。
我可以通过执行以下操作获取DataGridCell对象: 通用标签
但是,单元的数据上下文也属于DataRowView类型。我的领域发生了什么事?它消失了吗?谁能让我知道如何解决这个问题,或者我如何解决这个问题
谢谢。
解决方案
不隶属于 StackOverflow