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

Why does DataBinding on WinForms not work on one of my forms but on the others?

Hej 乡亲们,

代码的一些背景:我有一个 WinForms 项目,它的组织方式与主窗体一样只有一个菜单和一个面板,每个菜单按钮都以单独的窗体加载到该面板中。这工作正常。我不确定我的问题是否与此设置有任何关系,但是当我从第一个表单复制时,新表单上没有数据绑定。该表单由一个组合框和一个数据网格视图组成。虽然这些在原始表单上的绑定工作正常,但其中 none 正在处理新表单。每个初始化都是相同的:

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 填充组合框并且可以看到。我真的不知道问题出在哪里,感谢所有可能的提示。

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