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

时间:2015-01-05 16:57:24

标签: c# xml datagridview

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

我通过设置列可见属性来实现此目的。我遇到的问题是,如果我加载没有字段的XML文件(因此列不可见),然后加载带有字段的XML文件,该列再次可见,但数据不会显示为此列。

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

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

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

xmlDataGridView.Refresh();

任何帮助都会受到很多赞赏。我确定我错过了一些明显的东西。谢谢, (另外,如果这不是一个格式良好或不清楚的道歉,我在措辞方面不是很擅长)

2 个答案:

答案 0 :(得分:0)

如果列名称加载到网格中但未显示数据,请尝试使用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();

答案 1 :(得分:0)

我设法找到了各种各样的解决方案。我不认为这个问题与隐藏列有什么关系,只是因为在数据首次绑定时没有列的数据。我刚刚将隐藏字段的虚拟记录添加到没有它们的文件中。这对我有用,数据显示为我需要的。 感谢