Cat*_*lMF 4 c# data-binding listbox winforms
我有一个包含客户详细信息的课程。
class CustomerData : INotifyPropertyChanged
{
private string _Name;
public string Name
{
get
{ return _Name }
set
{
_Name = value;
OnPropertyChanged("Name");
}
}
// Lots of other properties configured.
}
Run Code Online (Sandbox Code Playgroud)
我还有一个CustomerData
值列表List<CustomerData> MyData;
我目前databinding
个人CustomerData
反对textboxes
以下工作正常的方式。
this.NameTxtBox.DataBindings.Add("Text", MyCustomer, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
Run Code Online (Sandbox Code Playgroud)
我正在努力寻找一种将列表中的每个对象绑定MyData
到ListBox
.
我希望将 MyData 列表中的每个对象显示在显示名称的 ListBox 中。
我尝试将其设置DataSource
为等于MyData
列表并将其设置DisplayMember
为“名称”,但是当我将项目添加到MyData
列表中时,它listbox
不会更新。
关于如何做到这一点有什么想法吗?
我发现List<T>
修改绑定列表时不允许更新列表框。为了让它工作,你需要使用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.
Run Code Online (Sandbox Code Playgroud)