Ser*_*her 3 c# data-binding visual-studio-2010 winforms
我正在使用WinForms C#有什么方法可以获得以下行为:
我试着做以下事情:
构造函数代码:
checkedlistBox1.DataSource = a;
checkedlistBox1.DisplayMember = "Name";
checkedlistBox1.ValueMember = "Name";
Run Code Online (Sandbox Code Playgroud)
领域:
List<Binder> a = new List<Binder> { new Binder { Name = "A" } };
在按钮1上单击:
private void butto1_Click(object sender, EventArgs e)
{
a.Add(new Binder{Name = "B"});
checkedListBox1.Invalidate();
checkedListBox1.Update();
}
Run Code Online (Sandbox Code Playgroud)
但视图不会更新.
谢谢.
改变这一行:
List<Binder> a = new List<Binder> { new Binder { Name = "A" } };
Run Code Online (Sandbox Code Playgroud)
对此:
BindingList<Binder> a = new BindingList<Binder> { new Binder { Name = "A" } };
Run Code Online (Sandbox Code Playgroud)
它将在没有任何其他变化的情况下工作.
关键是BindingList<T>implements IBindingList,它将在列表更改时通知控件.这允许CheckedListBox控件更新其状态.这是双向数据绑定.
此外,您可以更改这两行:
checkedListBox1.Invalidate();
checkedListBox1.Update();
Run Code Online (Sandbox Code Playgroud)
对此(更可读,基本上做同样的事情):
checkedListBox1.Refresh();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8214 次 |
| 最近记录: |