我正在尝试使用List<>填充DataGrid多个对象.这些对象都是基类固有的.我成功地显示了DataGrid中的列和行,但是我只看到基类的属性而不是子类的属性.
不幸的是,我在搜索网页时找不到太多有用的信息.但我仍然是WPF和C#的新手,所以也许这就是问题……
如何让DataGrid显示基类和子类的所有属性?
编辑:
我有一些从BaseClass继承的类(比如A,B,C),我有一个List< BaseClass>类型的列表.它容纳多种类型的多个对象.我需要在DataGrid中显示所有不同的子类.
解决方法:
<DataGrid ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Prop1}" />
<DataGridTextColumn Binding="{Binding Prop2}" />
</DataGrid.Columns>
</DataGrid>
class Base
{
}
class Derived1: Base
{
public string Prop1 { get; set; }
}
class Derived2: Base
{
public string Prop2 { get; set; }
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.DataContext = new List<Base>()
{
new Derived1(){Prop1 = "Hello"},
new Derived2() {Prop2 = "World"}
};
}
这适合我.我在第一行看到Hello,在第二行看到World.