我有一个 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/