c# - 如何判断用户是否使用绑定(bind)源修改了数据?

标签 c# winforms data-binding ado.net subsonic

我有一个 DataGridView 绑定(bind)到绑定(bind)源,绑定(bind)源绑定(bind)到 List<T> .用户单击进入带有文本框等的表单的行。文本框是数据绑定(bind)的,如下所示:

if (txtID.DataBindings.Count == 0)
    txtID.DataBindings.Add("Text", bindingSource, "Title");

我希望能够检测用户在单击关闭按钮时是否修改了控件中的任何数据,因此我可以提示他们说“您有未保存的工作。是否要保存?”

我如何在绑定(bind)源上检测到它?

更新:我已经知道我可以做到 bindingSource.EndEdit()它将更改推送到列表中的我的项目。在我的项目中,我可以说如果 Dirty 抛出一个消息框,但如果他们单击“否”以保存信息,则 CancelEdit 不起作用。

最佳答案

如果列表中的对象支持 INotifyPropertyChanged 事件并替换 List<T>通过 BindingList<T> 你可以订阅 ListChanged BindingList 的事件以获取有关用户所做的任何更改的通知。

关于c# - 如何判断用户是否使用绑定(bind)源修改了数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206140/

相关文章:

javascript - 如何将复选框值数据绑定(bind)到 Javascript 对象

wpf - C#/WPF 数据绑定(bind)和后台 worker

c# - asp.net C# 中的时差

c# - 线程和 Winforms 表单重绘

c# - 将 WPF 控件公开为 ActiveX 控件

c# - winforms中的软件还在开发中吗?

javascript - 根据 AngularJs 中指令属性的更改更新 UI

c# - MediaComposition.RenderToFileAsync 因许多静态图像而崩溃

c# - Symantec ScanEngine API 关于 StreamScanRequest 的说明

c# - 在 C# 中将事件从一个窗体传播到另一个窗体