在PropertyGrid中编辑动态属性

时间:2015-02-23 01:53:55

标签: c# dynamic propertygrid

我有一个我想通过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是预期的。问题是Value1Value2Values。这些都是灰色的;编辑。

我的大多数搜索都发现了诸如创建自定义PropertyDescriptor类之类的内容。所有这一切似乎都过分,而且不完全是我的情况所需要的。

有人可以建议如何启用属性网格以允许我编辑动态属性吗? (如果这有帮助,它们将是stringdouble

2 个答案:

答案 0 :(得分:0)

我认为你不能。

难道你不能只改为List<object>吗?

答案 1 :(得分:0)

在将“动态”类型添加到.NET Framework之前编写了PropertyGrid控件,因此它没有内置的创意如何处理该类型。

您可以通过创建自己的UITypeEditor来解决这个问题,该UITypeEditor可以提供适当的编辑体验。我认为你会根据它所持有的值的类型来改变它的编辑方式。