WPF类型使用DataGrid解析动态/派生类型

时间:2017-01-05 09:28:22

标签: c# wpf datagrid

这是我的所作所为:
1.我创建了一个Type T1 并实现了一个接口 I1
2.我使用带有自动生成列的DataGrid和一个List<I1>作为项目源。

网格生成 I1 的所有列,但 T1 ! 如果我使用List<object>作为项目来源的类型,我将获得所有属性。

使用T1的 Bindings 访问属性,同时将其暴露为I1,就像预期的那样工作。另外,添加针对T1 Properties的列也可以。

似乎继承混淆了WPF的类型系统(或者它只是网格吗?)
有什么建议吗?

编辑:此问题与DataGrid AutoGenerates Columns的方式有关。这有点奇怪,这是我必须修改的 我投了一个亲密的投票,只是为了让这篇文章出现在搜索中,但是由于它的DataGrid问题,基本上没有答案。

1 个答案:

答案 0 :(得分:0)

如果您希望自动生成列,则应将ItemsSource设置为List<T1>。这很有道理。想象一下,您有几种实现I1接口的类型,运行时应该如何确定要生成哪些列?

List<I1>例如可以包含具有10个公共属性的类型U1的实例和具有20个公共属性的类型V1的另一个实例。

有关详细信息,请参阅以下类似问题的答案。

WPF DataGrid build from List<SomeInterface> using AutoGenerateColumns