0

我有两个 DataGridView 一个非常简单,一个更复杂,具有不同的列类型。我的想法是将数据存储到 XML 并在重新启动时从文件中加载。对于简单的没有问题(dgvAccounts 是 DataGridView):

   DataTable dtusers = new DataTable("Users");
   DataColumn col1 = new DataColumn("ID");
   DataColumn col2 = new DataColumn("Key");
   dtUsers.Columns.Add(col1);
   dtUsers.Columns.Add(col2);
   if (File.Exists("user.xml"))
         dtUsers.ReadXml("user.xml");
   dgvAccounts.DataSource = dtUsers;     
   ....
   dtUsers.WriteXml("user.xml");  

但在另一个 DataGridView 上,我喜欢从 DataSource 获取的 DataTable 永远为空(dgvActions 是 DataGridView):

   DataGridViewTextBoxColumn dgvcolA5 = new DataGridViewTextBoxColumn();
   DataGridViewComboBoxColumn dgvcolA6 = new DataGridViewComboBoxColumn();
   dgvActions.Columns.Add(dgvcolA5);
   dgvActions.Columns.Add(dgvcolA6);
   DataTable dtActions = (DataTable)dgvActions.DataSource;
   dtActions.WriteXML("actions.xml");

我还尝试提前创建一个 DataTable 并将其添加为 dgvActions.DataSource 但结果是一样的。

那么请有人帮我为 DataGridView 创建一个 DataTable 或建议任何其他方式来存储和加载数据?

谢谢

安德烈

4

1 回答 1

0

首先设置数据表,然后像第一个示例中那样将其设置为数据源(这样您就不会从数据源中获取空数据表):

   DataTable dtActions = new DataTable();
   //Set DataTable columns here
   dtActions.WriteXML("actions.xml");
   dgvActions.DataSource = dtActions;
于 2013-03-25T13:25:49.030 回答