我有一个我想通过PropertyGrid编辑的课程。该类具有一些动态属性,如下所定义;
public class Conditional
{
public ConditionOperator Condition {get; set;}
public bool CaseSensitive {get; set;}
public dynamic Value1 {get; set;}
public dynamic Value2 {get; set;}
public List<dynamic> Values {get; set;}
...
}
ConditionOperator
是一个枚举,在PropertyGrid中运行得非常好,bool是预期的。问题是Value1
,Value2
和Values
。这些都是灰色的;编辑。
我的大多数搜索都发现了诸如创建自定义PropertyDescriptor
类之类的内容。所有这一切似乎都过分,而且不完全是我的情况所需要的。
有人可以建议如何启用属性网格以允许我编辑动态属性吗? (如果这有帮助,它们将是string
或double
。
答案 0 :(得分:0)
我认为你不能。
难道你不能只改为List<object>
吗?
答案 1 :(得分:0)
在将“动态”类型添加到.NET Framework之前编写了PropertyGrid控件,因此它没有内置的创意如何处理该类型。
您可以通过创建自己的UITypeEditor来解决这个问题,该UITypeEditor可以提供适当的编辑体验。我认为你会根据它所持有的值的类型来改变它的编辑方式。