BindingList <t>如何知道所选项目?

时间:2017-12-06 12:29:21

标签: c# binding listbox

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

listBox.DataSource = myBindingList;

并将一些标签绑定到同一个来源:

labelName.DataBindings.Add("Text",
                           myBindingList,
                           "Name",
                           false,
                           DataSourceUpdateMode.OnPropertyChanged);

当我的listBox的SelectedItem发生变化时,标签的值会发生变化。

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

他们如何知道,只要给他们BindingList作为来源,列表中的哪个项目是选定的项目?

1 个答案:

答案 0 :(得分:1)

在Windows窗体中进行数据绑定时,用户界面可以访问BindingContextCurrencyManagerBindingContext来自(最终)来自父表单,CurrencyManager通过数据源引用从<{em} <{em>}获得。所以:如果同一个表单上的两个控件被赋予相同的数据源,那么假设它们使用正常的绑定模式,它们将获得相同的BindingContext。跟踪所选项目的是CurrencyManager

注意:可以在每个控件的基础上拆分CurrencyManager;但默认是为了继承它 - 因此同一表单上的所有控件都将共享一个BindingContext