在我正在处理的应用程序中,我需要维护一个当前加载的项目列表,并在ListBox中显示每个项目的名称(好吧,多个ListBoxes,但这既不在这里也不在那里)。 / p>
class Project
{
public String Name;
// Etc. etc...
}
我有一个包含所有已加载项目的BindingList对象,并将其绑定到我的ListBox。
private BindingList<Project> project_list = new BindingList<Project>();
private ListBox project_listbox;
private void setList()
{
project_listbox.DisplayMember = "Name";
project_listbox.ValueMember = "Name";
project_listbox.DataSource = project_list;
}
然而,当我这样做时,project_listbox
中显示的所有内容都是项目的一组类名。我在这里错过了什么吗?我能找到的关于将列表绑定到ListBox的每个引用都使用非常类似的设置。
答案 0 :(得分:2)
您需要使属性可读:)
class Project
{
public string Name {get; private set;}
// Etc. etc...
}
现在它应该工作了。我刚试过它。
这也应该有效:
public readonly string Name;
正如我所指出的那样。放“readonly”不起作用。我亲自测试并验证了它。
答案 1 :(得分:0)
顺便说一句,请注意,如果要搜索或排序BindingList,则需要实现它并添加此功能
答案 2 :(得分:0)
一个可能的问题是新项目没有插入到 BindingList 中,而是插入到它的父 List 中