我有一个 WinForms 屏幕,DataGridView
上面有一个和 Back/Next 按钮。在 上FormLoad
,网格中填充了来自 XML 文档的值。然后,用户可以更改网格中任何单元格的值。我创建了一个SaveGridValuesToXml
方法,它使用网格单元格中的更新值更新 XML 文件。
这大部分工作正常,我已经SaveGridValuesToXml
从网格上的 Leave 事件中触发了该方法,因此当用户单击返回或下一步并且网格失去焦点时,将调用 save 方法。
我遇到的问题是所有单元格值都已更新并正确反映在 XML 文件中,但网格失去焦点时具有焦点的单元格除外。例如,在三列网格中,如果我更新第一行中的第一个、第二个和第三个单元格,当网格失去焦点时,只有我在第一个和第二个单元格中所做的更改会保存到我的 XML 文件中。
代码示例如下 -LoadXmlDataIntoGridGridView()
加载父窗体时调用该方法。
XmlDataDocument xmlData = new XmlDataDocument();
private void LoadXmlDataIntoGridGridView()
{
xmlData.DataSet.ReadXml(@"C:\testFile.xml");
uxMappingDataGridView.DataSource = xmlData.DataSet;
uxMappingDataGridView.DataMember = "Item";
}
private void uxBackButton_Click(object sender, EventArgs e)
{
this.Hide();
uxSettingsUserControl settingsScreen
= ParentForm.Controls["uxSettingsUserControl"] as uxSettingsUserControl;
settingsScreen.Show();
}
private void uxNextButton_Click(object sender, EventArgs e)
{
this.Hide();
uxLoadScriptUserControl loadScriptScreen
= ParentForm.Controls["uxLoadScriptUserControl"] as uxLoadScriptUserControl;
loadScriptScreen.Show();
}
private void uxMappingDataGridView_Leave(object sender, EventArgs e)
{
SaveGridValuesToXml();
}
private void SaveGridValuesToXml()
{
xmlData.DataSet.WriteXml(@"C:\testFile.xml");
}
有什么建议么?