如何正确公开列表<;对象>;Visual Studio C#中的属性?
我已经为我制作的自定义windows窗体创建了一个属性如何正确公开列表<;对象>;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的属性窗口中显示得
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;
}
}