为什么WinForms上的DataBinding不能在我的一种表单上起作用,而在其他表单上起作用?

时间:2018-10-24 18:48:59

标签: c# winforms list bindingsource

Hej Folks,

代码的某些背景:我有一个WinForms项目,该项目的组织方式像主窗体只有一个菜单和一个面板,每个菜单按钮均以单独的形式加载到该面板中。一切正常。我不确定我的问题是否与此设置有任何关系,但是当我从第一种形式制作副本时,没有数据绑定在新形式上起作用。该表单由一个组合框和一个datagridview组成。尽管这些在原始表单上可以很好地与绑定一起工作,但是它们都没有在新表单上起作用。每个的初始化都相同:

private readonly List<string> _listOfStrings = new List<string>();
private readonly BindingSource _gridBindingSource = new BindingSource();
private readonly List<Object> _listOfObjects = new List<Object>();

绑定组合框:

comboBoxSomeName.DataSource = new BindingSource(_listOfStrings, null);

绑定网格:

_gridBindingSource.DataSource = _listOfObjects;
dataGridViewItems.DataSource = _gridBindingSource;

比我要填写的列表还要多。我还尝试将其填充,而不是绑定,结果相同。列表似乎很好,数据在那里,并且BindingSources可以看到它们,但控件看不到。控件本身也很好,我可以用items.add填充组合框,这可以看到。我真的不知道可能是什么问题,感谢所有可能的提示。

1 个答案:

答案 0 :(得分:0)

填写列表后,您必须调用_gridBindingSource.ResetBindings()。