我有一个应用程序,它有一个Mainform,有2个面板使用分割器。顶部面板是一个包含绑定导航器,数据集,绑定源,tableadapters的表单。
底部面板也是一种形式。它基本上只是一个datagridview。当Mainform加载时,我将绑定源从顶部表单传递到底部表单。
底部表单接受bindingsource,并为它自己的数据源成员使用一个关系(在两个表之间)。
查看数据效果很好。
当我更新主数据中的数据时,我会在用户导航记录时捕获它。我使用bindingsource.EndEdit(),DataSet.HasChanges()来验证然后tableadapter.update在导航到下一条记录之前写入数据。
这也很有效。
现在,我如何以详细(底部)形式捕获和写入数据?所有它都是传入的bindingsource。
我有一个部分工作的解决方案,其中顶层表单实际上使用第二个tableadapter.update语句来编写子表..但它似乎需要2个记录导航才能工作。 (此时数据实际上已正确更新)
任何高级别更好的方法来完成所有这些工作? 谢谢 [R
答案 0 :(得分:0)
看起来这是事件订单的一般问题..或者它可能是特定于bindingnavigator或我的设置..但是为了在底部applet中更改记录之前触发底部表单的事件(当直接从底部的修改后的网格行点击导航器,我必须首先在顶级applet事件中显式移动焦点。在我的情况下,我捕获了导航器上的任何点击,只是运行this.focus();这导致所有底部形式事件在继续之前触发。然后,这允许我的haschanges()检查顶部表单在底部表单中的bindingsource.endedit之后发生。