У меня есть общий класс (Parameters.cs), который реализует интерфейс: ICustomTypeDescriptor.

Я использую общий класс для нескольких разных классов, один из которых следующий:

    private Parameters<Class1> _class1Parameters;

    public Parameters<Class1> Class1Parameters
    {
        get { return _class1Parameters; }
        set { _class1Parameters= value; }
    }

Class1.cs :

public class Class1
{
    private List<Position> _pos = new List<Position>();

    public List<Position> Pos
    {
        get { return _pos ; }
        set { _pos = value; }
    }  

    //Other variables
}

Класс должности:

public class Position
{
    public string Name { get; set; }
    public double Position { get; set; }
}

Прямо сейчас список отображается с тремя точками в Propertygrid ("...").

Я хочу, чтобы это отображалось с помощью Expander ("+"), как мы можем сделать это с помощью ICustomTypeDescriptor?

РЕДАКТИРОВАТЬ:

Я пробовал поставить [TypeConverter(typeof(ExpandableObjectConverter))] над списком Pos, не помогло.

2
Hodaya Shalom 9 Апр 2013 в 10:59
Какой объект вы показываете в сетке свойств?
 – 
Sergey Berezovskiy
9 Апр 2013 в 11:12
@lazyberezovsky, список должностей
 – 
Hodaya Shalom
9 Апр 2013 в 11:13
И как ваш общий класс Parameters связан с вопросом?
 – 
Sergey Berezovskiy
9 Апр 2013 в 11:14
@lazyberezovsky, в общем Paramerters я реализую интерфейс: ICustomTypeDescriptor. и сетка свойств использует его: Parameters<Class1>.
 – 
Hodaya Shalom
9 Апр 2013 в 11:16
Вы сказали чуть выше, что он использует список позиций. Что не должно быть проблемой - если вы назначите список позиций сетке свойств, это позволит увидеть все позиции в редакторе коллекции. Также вы не указали, что используете - это WinForms?
 – 
Sergey Berezovskiy
9 Апр 2013 в 11:17

1 ответ

Лучший ответ

Наконец мне удалось пройти через этот сайт:

Настраиваемое отображение данных коллекции в PropertyGrid

1
Hodaya Shalom 10 Апр 2013 в 15:30