我有一个 .NET 2.0 Winforms 应用程序(和 Subsonic 2.2),其中我有一个 DataGridView 和面板中的几个控件,两者都绑定到一个 BindingSource,其数据源是一个 Subsonic ActiveRecord 集合。当用户选择网格中的一行时,相应的详细信息将显示在下面的面板中的适当控件(texbox、combo、datetimepicker 等)中
当用户更改某些数据并尝试移动到其他行时,我希望应用程序显示数据已更改且需要保存的警告。如果用户选择是,数据应该被持久化。
我面临几个问题:
a)在 DGV.RowEnter 事件处理程序中,我尝试查找当前行是否脏(使用 Activerecord 的 IsDirty)。如果是这样,我会显示一个消息框。
b) 当我保存并重新绑定网格时,datagridview 的数据源无法重新绑定到新的(保存的)集合。该应用程序抛出“操作无效”的错误。
c) 此外,由于 gridview 和控件都绑定到同一个集合,所以每当我更改控件中的某些内容时,它都会反映在网格中,但是当用户选择“否”来保存数据时,应该撤消更改。subonic 是否像数据集一样有任何接受/取消更改?
谢谢!