2015-02-23 8 views
1

У меня есть класс, который я хочу редактировать с помощью 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, как и логическое значение, которое, как ожидается. Проблема заключается в Value1, Value2 и Values. Они выделены серым цветом; неизменяемое.

В большинстве моих поисков появились такие вещи, как создание пользовательских классов PropertyDescriptor и т.п. Все это кажется чрезмерным, а не то, что требует моя ситуация.

Может ли кто-нибудь предложить, как разрешить сетку свойств разрешить мне изменять динамические свойства? (Они будут либо string, либо double, если это вообще помогает).

ответ

0

Я не думаю, что вы можете.

Не могли бы вы просто сделать это List<object>?

+0

Нет, 'Object' имеет ту же проблему. – Trent

0

Элемент управления PropertyGrid был написан до того, как в .NET Framework был добавлен «динамический» ввод, и поэтому он не имеет встроенной идеи о том, как обращаться с этим типом.

Возможно, вы сможете обойти это, создав собственный UITypeEditor, который может обеспечить соответствующее редактирование. Я предполагаю, что вы изменили бы его редактирование в зависимости от типа его значения.

Смежные вопросы