DataGridView
如果成员保存在不存在属性的基类类型列表中,有什么方法可以显示我的派生类的属性?说我有以下内容:
public class MyBaseClass
{
public int MyPropertyBase { get; set; }
//...
}
public class MyDerivedClass : MyBaseClass
{
public int MyPropertyDerived { get; set; }
//...
}
// Create list of type MyBaseClass, holding MyDerivedClass objects
List<MyBaseClass> list = new List<MyBaseClass>();
list.Add(new MyDerivedClass(1));
list.Add(new MyDerivedClass(2));
list.Add(new MyDerivedClass(3));
// Declare DataGridView
DataGridView dataGridView = new DataGridView();
dataGridView.AutoGenerateColumns = false;
// Create display column for DataGridView
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
当我将列表绑定到 aDataGridView
并显示MyPropertyBase
属性时,它可以正常工作:
// Select MyPropertyBase to display in column
col.DataPropertyName = "MyPropertyBase";
dataGridView.Columns.Add(col);
dataGridView.DataSource = list;
但是,如果我想显示MyPropertyDerived
using 相同的List<MyBaseClass>
内容,它将不起作用,只显示空单元格(尽管它显示了与列表中的项目相对应的单元格数量):
// Select MyPropertyDerived to display in column
col.DataPropertyName = "MyPropertyDerived";
dataGridView.Columns.Add(col);
dataGridView.DataSource = list;
我真的需要将这个列表输入到我的抽象基类中,因为它在代码的其他地方到处都在使用。有没有办法将派生类属性公开给DataGridView
它们是否存在,如果属性不存在则只显示和清空单元格?真正有用的是让每个派生类公开(可能通过属性)它们在绑定到 a 时想要显示的所有内容,DataGridView
并DataGridView
从列表中自行填充。