将 Winforms ListBox 集合绑定到 List<object>

Bind Winforms ListBox collection to List<object>

我有一个 class 包含我的客户的详细信息。

class CustomerData : INotifyPropertyChanged
{
    private string _Name;
    public string Name 
    { 
        get 
        { return _Name } 
        set 
        {
            _Name = value;
            OnPropertyChanged("Name");
        }
    }

   // Lots of other properties configured.
}

我还有一个 CustomerData 值列表 List<CustomerData> MyData;

我目前 databinding 个人 CustomerData 反对 textboxes 以下面的方式工作正常。

this.NameTxtBox.DataBindings.Add("Text", MyCustomer, "Name", false, DataSourceUpdateMode.OnPropertyChanged);

我正在努力寻找一种方法将列表 MyData 中的每个对象绑定到 ListBox

我想让 MyData 列表中的每个对象都显示在显示名称的列表框中。

我尝试将 DataSource 设置为 MyData 列表并将 DisplayMember 设置为 "Name" 但是当我将项目添加到 MyData列表listbox不更新。

关于如何完成的任何想法?

我发现 List<T> 将不允许在修改绑定列表时更新 ListBox。 为了让它工作,你需要使用 BindingList<T>

BindingList<CustomerData> MyData = new BindingList<CustomerData>();

MyListBox.DataSource = MyData;
MyListBox.DisplayMember = "Name";

MyData.Add(new CustomerData(){ Name = "Jimmy" } ); //<-- This causes the ListBox to update with the new entry Jimmy.