Как я могу отредактировать коллекцию имен файлов в сетке свойств? - PullRequest
2 голосов
/ 09 ноября 2010

У меня есть коллекция имен файлов в классе C #:

    private List<string> m_files

    public List<string> Files
    {
        get
        {
            return m_files;
        }
        set
        {
            m_files = value;
        }
    }

Я хочу иметь возможность отображать и редактировать эту коллекцию в сетке свойств, в частности, я хотел бы иметь возможность добавлять файлы в эту коллекцию со стандартным FileDialog. Какой самый простой способ сделать это?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Используйте EditorAttribute, чтобы указать, что это свойство редактируется с помощью CollectionEditor:

private List<string> m_files

[EditorAttribute(typeof(System.ComponentModel.Design.CollectionEditor), typeof(System.Drawing.Design.UITypeEditor))]
public List<string> Files
{
    get
    {
        return m_files;
    }
    set
    {
        m_files = value;
    }
}
0 голосов
/ 09 ноября 2010

Вы можете захватить StringCollectionEditor для более дешевого решения:

    [Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
    public List<string> Files {
        get { return m_files; }
        set { m_files = value; }
    }

Но для проверки файлов или использования OFD потребуется написать собственный UITypeEditor.Помните, что пути файлов во время разработки никоим образом не отражают пути, которые они будут иметь при развертывании проекта.

...