【发布时间】:2016-09-13 11:46:36
【问题描述】:
我在 DataGrid 中显示特殊类型的项目时遇到问题。我创建了一个最小的示例。
假设我有一个抽象 BaseClass 和许多继承 ChildClasses:
public abstract class BaseClass
{
public int BaseProperty { get; set; }
}
//Many ChildClasses possible
public class ChildClass : BaseClass
{
public int ChildProperty { get; set; }
}
我的 DataContext 包含所有项目的集合:
public ObservableCollection<BaseClass> Items { get; set; }
现在我想在 GridView 中显示特殊类型集合的所有项目。为了过滤掉一个类型,我创建了一个CollectionViewSource:
<CollectionViewSource Source="{Binding Items}" x:Key="ChildClasses" Filter="ChildClassesFilter"/>
这是使用CollectionViewSource 生成的GridView:
<DataGrid ItemsSource="{Binding ChildClasses}"/>
现在我的问题:
在DataGrid 中,仅自动显示BaseProperty (AutoGenerateColumns)。如何在不描述 XAML 中的属性的情况下强制 WPF 也显示 ChildProperty?
或者是否有不同的方法来仅显示我的 GridView 中的特殊类型的项目?
【问题讨论】: