2013-04-25 4 views
0

У меня есть PropertyGrid (winform), который содержит список позиций.Редактировать список в PropertyGrid

private ValuesCollection _position1 = new ValuesCollection(); 

public ValuesCollection Position1 
{ 
    get { return _position1; } 
    set 
    { 
    _position1 = value; 
    } 
} 

ValuesCollection этот класс, который я сделал со следующей статьей: Customized display of collection data in a PropertyGrid

Каждый объект в списке принадлежит к классу значения:

[TypeConverter(typeof(ExpandableObjectConverter))] 
public class Values 
{ 
    [Browsable(false)] 
    public string Name { get; set; } 
    public virtual double Value { get; set; } 

    public Values() 
     : this(null, 0) 
    { 

    } 
    public Values(string name, double value) 
    { 
     Name = name; 
     Value = value; 

    } 

    public override string ToString() 
    { 
     return Value.ToString(); 
    } 
} 

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

enter image description here

Я должен открыть еще один уровень (открыть сам объект) и редактировать там.

enter image description here

Я хочу изменить на первом уровне, а не открыть любой объект в одиночку. Я не нашел способ сделать это, у кого-нибудь есть идея?

(постскриптум Я не хочу использовать Collection Editor.)

ответ

1

вы могли бы реализовать TypeConverter для Values класса

+0

Покажешь, как это сделать? –

+0

позвольте мне Google, что для вас ... http://blog.csharphelper.com/2010/05/07/make-a-type-converter-to-let-the-propertygrid-display-and-edit-compound- свойства-в-c.aspx – DarkSquirrel42

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