有没有办法在一个对象的 PropertyGrid(和他的 CollectionEditor)中显示和编辑值,该对象派生自一个抽象的泛型类?我没有只显示类似这样的属性:“IFilter´1”或“BaseFilter'1”其中 IFilter 是一个接口,而 BaseFilter 是一个抽象类。
此列表包含的所有对象:
List<IFilter<bool>> _activeFilter = new List<IFilter<bool>>();
有一个抽象类,实现了 IFilter:
public abstract class FilterBase<T> : IFilter<T> { ... }
以及 FilterBase 的一些特殊实现
public class SimpleBool : FilterBase<bool> {
public bool BoolValue { get; set; }
protected override bool Process(bool input) {
return input && BoolValue;
}
}
当我将这样的“SimpleBool”类添加到上面定义的列表中时,PropertyGrid 不会显示任何属性。但是当我使用非泛型类型定义泛型列表时,它显示全部正确。
有解决方案来完成这项工作吗?我尝试添加一些 TypeConverter 和一个自己的 CollectionEditor。显然没有运气=(