无法将BindingList绑定到ListBox

时间:2009-12-16 20:57:47

标签: c# .net winforms listbox

在我正在处理的应用程序中,我需要维护一个当前加载的项目列表,并在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的每个引用都使用非常类似的设置。

3 个答案:

答案 0 :(得分:2)

您需要使属性可读:)

class Project
{
    public string Name {get; private set;}

    // Etc. etc...
}

现在它应该工作了。我刚试过它。

这也应该有效:

public readonly string Name;

正如我所指出的那样。放“readonly”不起作用。我亲自测试并验证了它。

答案 1 :(得分:0)

顺便说一句,请注意,如果要搜索或排序BindingList,则需要实现它并添加此功能

http://msdn.microsoft.com/en-us/library/ms993236.aspx

答案 2 :(得分:0)

一个可能的问题是新项目没有插入到 BindingList 中,而是插入到它的父 List 中