我正在研究C#中的框架理解。我有一个表单,在表单上有简单的添加/编辑,保存/取消(和退出)按钮。表单有一个网格和一个绑定到它的数据表(数据表是表单上的一个字段,用于保留表单的持续时间范围)。
同样在表单上有3个简单的文本框控件绑定到DataTable
中的各个列。当我滚动网格时,文本框细节会自动刷新...完美。
我添加/取消协调工作正常,但编辑/取消失败。未能履行以下规定。
我启动表单,网格显示3行(第1列是一个简单的“描述”)。第一行的值为Test
(因此在表单上显示相应的绑定单个文本框控件)。我单击编辑按钮,现在可以更改单个文本框(而不是数据网格)并将其更改为Test changed value
。
所以,现在,我点击“取消”按钮,希望以下内容......网格不会使用新值更新,并且单个文本框控件将返回其原始Test
值。
在“取消”按钮中,我发出MyDataTable.RejectChanges()
,网格正确保留原始Test
值,但文本框控件保留Test changed value
内容。当我在添加/取消组合期间进行相同的RejectChanges()
调用时,一切都运行良好。
为了在添加/取消期间模拟类似的东西,我明确强制网格到数据表中的最后一个有效行,后者又反过来更新文本框...显然,在{{的调用/重新加载过程中有些东西1}}被触发做了我看不到的事情。由于它是一个EDIT,我不是从表中删除一行(临时从“添加”),然后拒绝(删除),并通过MyDataGridView.CurrentRow
强制进行行更改。
任何想法都会很棒。