c# – BindingList如何知道所选项目?

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

listBox.DataSource = myBindingList;

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

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

当我的listBox的SelectedItem发生更改时,标签的值会发生变化.

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

他们怎么知道,只是给他们BindingList作为源,列表中的哪个项目是选定的?

解决方法

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

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

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...