当您使用BindingList作为Binding时,可以说一个ListBox

listBox.DataSource = myBindingList;

并将某些标签绑定(bind)到同一来源:
labelName.DataBindings.Add("Text",
                           myBindingList,
                           "Name",
                           false,
                           DataSourceUpdateMode.OnPropertyChanged);

当我的listBox的SelectedItem更改时,标签的值也会更改。

为什么标签的值总是引用当前选定的项目?

通过仅给他们BindingList作为来源,他们怎么知道列表中的哪一项被选中?

最佳答案

在Windows窗体中进行数据绑定(bind)时,UI可以访问BindingContextCurrencyManagerBindingContext(最终)来自父表单,并且CurrencyManager是通过数据源引用从BindingContext获得的。因此:如果以相同形式为两个控件提供了相同的数据源,则假定它们使用常规绑定(bind)模式,则它们将获得相同的CurrencyManager。跟踪所选项目的是CurrencyManager

注意:可以按控件分割BindingContext;但是默认值是继承-因此,同一表单上的所有控件都会共享一个BindingContext

关于c# - BindingList <T>如何知道所选的项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47674346/

10-13 02:16