隐藏的 DataGridView 列在再次可见时不显示数据

Hidden DataGridView column doesn't display data when made visible again

我有一个绑定到 XML 文件的 DataGridView,XML 文件可能包含某个字段,但也可能不包含。如果有该字段,我想显示相关的 DataGridView 列,如果没有,我想隐藏它。

我通过设置列的可见属性实现了这一点。我遇到的问题是,如果我加载一个没有该字段的 XML 文件(因此该列不可见),然后加载一个带有该字段的 XML 文件,该列再次可见但数据此列没有出现。

我正在使用以下代码加载 XML 文件。

xmlDataGridView.AutoGenerateColumns = false;
xmlDataSet.ReadXml(_tempAccessXMLFile);

xmlDataGridView.DataSource = xmlDataSet;
xmlDataGridView.DataMember = "key";

xmlDataGridView.Refresh();

如有任何帮助,我们将不胜感激。我确定我遗漏了一些明显的东西。谢谢, (此外,如果格式不正确或不清楚,我深表歉意,我不太擅长措辞)

如果列名加载到网格中但未显示数据,请尝试使用 BindingSource。我已经使用 books.xml 示例 XML 文件对其进行了测试并且工作正常

xmlDataGridView.AutoGenerateColumns = false;
XmlReader xmlFile = XmlReader.Create(_tempAccessXMLFile, new XmlReaderSettings());

dataSet.ReadXml(xmlFile);

BindingSource bs = new BindingSource();
bs.DataSource =  dataSet.Tables["book"];

xmlDataGridView.DataSource =bs;
xmlDataGridView.Refresh();

我设法找到了某种解决方案。我不认为这个问题与隐藏列有任何关系,而只是因为第一次绑定数据时列没有数据。我刚刚将隐藏字段的虚拟记录添加到没有它们的文件中。这对我有用,数据按我的需要出现。 谢谢