如何编辑属性网格中的文件名集合?

时间:2010-11-09 13:35:26

标签: c# collections propertygrid

我在C#类中有一组文件名:

    private List<string> m_files

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

我希望能够在属性网格中显示和编辑此集合,特别是我希望能够使用标准FileDialog将文件添加到此集合中。哪种方法最简单?

2 个答案:

答案 0 :(得分:1)

使用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;
    }
}

答案 1 :(得分:0)

您可以劫持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。请记住,设计时文件的路径绝不代表部署项目时的路径。