我有一个绑定到关键字列表的datagridview。
void BindKeywordData()
{
keywords = kbo.GetQueryable(false).ToList();
srcKeywords.ResetBindings(false);
dgKeywords.DataSource = null;
dgKeywords.DataSource = srcKeywords;
dgKeywords.Update();
}
private void FormKeywords_Load(object sender, EventArgs e)
{
BindKeywordData();
}
有一个" EDIT"链接列,单击单元格内容时,我可以编辑另一个表单上特定行的信息。那个表单frmKeditor包含一个文本框和一个保存按钮,它完美无缺,所以我不在这里发布代码。
FormKeywordEditor frmKEditor = new FormKeywordEditor(kw);
DialogResult dresult = frmKEditor.ShowDialog();
if (dresult == System.Windows.Forms.DialogResult.Yes)
{
BindKeywordData();
}
问题是BindKeywordData没有刷新数据网格视图(数据确实发生了变化,我已经直接通过Sql Studio进行了检查)。当我使用另一个表单添加新记录时,datagridview会立即显示新行,但编辑行的文本仍然不会更改,直到我关闭表单并再次重新打开。即使我在窗体上放置一个按钮并直接调用BindKeywordData(),datagridview仍然不显示已编辑行的更改。请帮助,谢谢。
答案 0 :(得分:0)
自己找到了答案: 我不应该从对话框更新数据库,因为所有者表单不会知道它。所以在对话框中我只更改了关键字的一些值,然后在主窗体上调用kbo.save(),如下所示:
FormKeywordEditor frmKEditor = new FormKeywordEditor(kw);
DialogResult dresult = frmKEditor.ShowDialog();
if (dresult == System.Windows.Forms.DialogResult.Yes)
{
kbo.save();
BindKeywordData();
}