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

C# 隐藏的DataGridView列在再次可见时不显示数据,c#,xml,datagridview,C#,Xml,Datagridview,我有一个绑定到和XML文件的DataGridView,XML文件可能包含某个字段,但可能不包含。如果字段在那里,我想显示相关的DataGridView列,如果没有,我想隐藏它 我通过设置columns visible属性实现了这一点。我遇到的问题是,如果我加载一个不带字段的XML文件,使列不可见,然后加载一个带字段的XML文件,列将再次可见,但此列的数据不会显示 我使用下面的代码加载XML文件 xmlDataGridView.AutoGenerateColumns = false; xmlDat

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

我通过设置columns visible属性实现了这一点。我遇到的问题是,如果我加载一个不带字段的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();

我总算找到了解决办法。我不认为问题与隐藏列有关,只是因为在第一次绑定数据时没有列的数据。我刚刚将隐藏字段的虚拟记录添加到没有这些记录的文件中。这对我有效,数据按我需要显示。
谢谢

谢谢你花时间回答,但这似乎有同样的问题。列标题已加载,但这些列的数据未加载。