如何正确公开列表<;对象>;Visual Studio C#中的属性?

如何正确公开列表<;对象>;Visual Studio C#中的属性?,c#,list,properties,designer,C#,List,Properties,Designer,我已经为我制作的自定义windows窗体创建了一个属性 private List<object> values; public List<object> Values { get { return values; } set { values = value; } } 私有列表值; 公共列表值 { 得到 { 返回值; } 设置 { 价值=价值; } } 它在designer的属性窗口中显示得

我已经为我制作的自定义windows窗体创建了一个属性

private List<object> values;

public List<object> Values
{
    get
    {
       return values;
    }
    set
    {
       values = value;
    }
}
私有列表值;
公共列表值
{
得到
{
返回值;
}
设置
{
价值=价值;
}
}
它在designer的属性窗口中显示得很好。我转到属性值字段,显示带有“…”三个点的按钮。我点击按钮,出现了一个允许我向列表中添加项目的窗口。我添加它们并单击ok。没有出现错误,但项目尚未保存


我的问题是如何正确设置它,以便在设计时在属性窗口中设置
列表
项?

在Form1.Designer.cs中,手动实例化
列表
,如下所示

this.Values = new List<object>();
或者,在声明列表时实例化它

private List<object> values = new List<object>();

public List<object> Values
{
    get
    {
        return values;
    }
    set
    {
        values = value;
    }
 }
私有列表值=新列表();
公共列表值
{
得到
{
返回值;
}
设置
{
价值=价值;
}
}

Thx到键盘p。我把代码改成了你建议的样子

私有列表
值=新列表
()

公共列表
值 { 得到 { 返回值; } 设置 { 价值=价值; } }

它就像我想要的那样工作

有一件事需要注意,以防有人需要。如果您使用的是像List
这样的自定义类,而不是List
。在“CustomClass”定义中,执行以下操作

[System.Serializable]
公共类CustomClass
{
......
}

否则,当您试图通过属性窗口向列表中添加项目时,将出现错误

另一种方法是将列表
更改为CustomClass[]

私有CustomClass[]值

公共自定义类[]值 { 得到 { 返回值; } 设置 { 价值=价值 } }

第二个方法我不需要在CustomClass定义的开头添加[System.Serializable]


我希望这对某人有所帮助。

我隐约记得,为了实现这一目标,你必须装修你的房子。我赞成这个问题,稍后将对此进行检查。Thx。我做了这个私有列表values=newlist();我还发布了一个答案,上面写着几句话,我通过尝试不同的事情得到了一个不同的选择。非常感谢。
private List<object> values = new List<object>();

public List<object> Values
{
    get
    {
        return values;
    }
    set
    {
        values = value;
    }
 }