我有一个DataGridView
和一个BindingList
以及BindingSource
来填充它。
我用来填充DataGridView
的对象是这样的:
public class MyBaseClass
{
public int SomeProperty {get; set;}
public MyBaseClass(int sp) {
SomeProperty = sp;
}
}
public class MyDerivedClass : MyBaseClass
{
public int AnotherProperty {get; set;}
public MyDerivedClass(int sp, int ap):base(sp)
{
AnotherProperty = ap;
}
}
我的DataGridView
可以包含两个对象的列表,但我不知道如何为继承的类中的DataPropertyName
设置DataGrid列的AnotherProperty
。
这可能吗?
答案 0 :(得分:0)
这是可能的。请参阅此答案:https://stackoverflow.com/a/22078353/2878550
它指的是字段,但您可以通过在MyCustomTypeDescriptor.GetProperties
方法中实现不同的逻辑来适应您的情况。
答案 1 :(得分:0)
那么您的DataSource
是MyBaseClass
个对象的集合吗?对于没有该属性的MyBaseClass
对象,它会做什么?
一个选项是在基类上创建属性virtual
并在必要时覆盖它:
public class MyBaseClass
{
public int SomeProperty {get; set;}
public virtual int AnotherProperty {get; set;}
public MyBaseClass(int sp) {
SomeProperty = sp;
}
}
public class MyDerivedClass : MyBaseClass
{
public MyDerivedClass(int sp, int ap):base(sp)
{
AnotherProperty = ap;
}
}