0

我对编程并不陌生,但我对 VSTO 相当陌生(不是我最喜欢的!)。我正在使用Excel 2010、VS 2010 和 C#

在我的 Excel 工作簿项目中,我有一个复杂的 winform,它也使用 XSD 来管理屏幕之间的数据。这工作得很好。但是,当用户打开和关闭 Excel 文件时,我需要什么代码才能使此数据集从一次使用表单持续到下一次使用?现在,一旦表单关闭,数据集就会消失。

我查看了表单序列化,这篇文章让我非常接近: http: //www.codeproject.com/Articles/12976/How-to-Clone-Serialize-Copy-Paste-a-Windows-Forms

但是上面的代码不支持 DataGridView 控件:(

无论如何,由于我已经有一个项目和我的代码正在使用的 XSD,因此必须有另一种方法来保存此数据集,然后在 Excel 工作表的后续使用中使用它。我的意思是,结构化数据已经存在 - 没有本地操作来保存这些数据,然后在表单加载时重新加载它?

所以我正在寻找代码来 (1) 将我的结构化数据保存到磁盘和 (2) 在后续表单加载中使用这个保存的数据集。

或者

有没有人有代码来序列化 DataGridView 控件?这似乎有点像“白鲸”,因为我在任何地方都找不到它,而且上面文章的作者已经声明它在任何地方都不存在。

4

2 回答 2

1

从您的代码中可以明显看出,您有一个数据源作为您已成功分配给数据网格的数据集。如果是这样,你应该这样做

ds.WriteXml(@"c:\1.xml");

然后您可以像这样在后续表单上使用此 xml

System.IO.FileStream fsReadXml = new System.IO.FileStream 
    (myXMLfile, System.IO.FileMode.Open);
ds.ReadXml(fsReadXml);
于 2013-07-29T17:48:19.650 回答
1

为什么不从 DataTable 或自定义绑定列表填充 DataGridView,而不是序列化 DataGridView,然后您可以序列化该 DataTable 或自定义绑定列表?

于 2013-07-29T17:43:37.557 回答