C# 如何按名称查找bindingSource?
我的winform中有很多bindingsource,我想动态更改gridview的数据源,所以我想通过名称获取bindingsource。 我从winform中找到了以下代码来查找所有bindingSource 名称表示的是bindingSource名称属性 图中,它的名字是“bsSL070101”C# 如何按名称查找bindingSource?,c#,winforms,reflection,C#,Winforms,Reflection,我的winform中有很多bindingsource,我想动态更改gridview的数据源,所以我想通过名称获取bindingsource。 我从winform中找到了以下代码来查找所有bindingSource 名称表示的是bindingSource名称属性 图中,它的名字是“bsSL070101” private IEnumerable枚举组件() { 从GetType()中的字段返回。GetFields( BindingFlags.Instance | BindingFlags.Publ
private IEnumerable枚举组件()
{
从GetType()中的字段返回。GetFields(
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
其中typeof(Component).IsAssignableFrom(field.FieldType)
let component=(component)field.GetValue(this)
其中组件!=null
其中component.ToString()包含(“Windows.Forms.BindingSource”)
选择组件;
}
在我得到BindingSourceList后,我想按名称筛选其中一个,但我不知道怎么做,请帮助我,谢谢~
IEnumerable<Component> BindingSourceList = EnumerateComponents();
//I wonder find a bindingSource by name, but it doesn't work
BindingSource bb = BindingSourceList.find(a=>a.name=="bsSL070101");
IEnumerable BindingSourceList=EnumerateComponents();
//我想通过名称找到bindingSource,但它不起作用
BindingSource bb=BindingSourceList.find(a=>a.name==“bsSL070101”);
组件仅在设计时具有名称。如果在运行时需要使用它们的名称查找它们,则需要依赖于字段名
下面的代码返回字典中表单的所有字段
:
您可以在字典中按名称找到绑定源:
var bs = bindingSources["categoriesBindingSource"];
注:
- 如果名称不重要,您只需要使用designer添加的实例:
var bindingSources = this.components.Components.OfType<BindingSource>();
var bindingSources=this.components.components.OfType();
var bs = bindingSources["categoriesBindingSource"];
var bindingSources = this.components.Components.OfType<BindingSource>();