4

我有一个bindingList<T>bindinglist 的每个对象都实现INotifyPropertyChanged,在我的 WinForm 中我使用了一个 BindingSource 并设置它的数据源,BindingList<T>然后将一些文本框绑定到 BindingList 中每个项目的属性(我使用这个 winform 进行 CRUD 操作):

tbName.DataBindings.Add("Text", myBindingSource, "Name", true);
tbFamily.DataBindings.Add("Text", myBindingSource, "Family", true);

我还有一个取消编辑的按钮。但是当我正在编辑一条记录并单击取消按钮时,只有最后一次编辑的字段取消,我想取消整行并将所有值恢复为编辑前的值,我该怎么做?

4

3 回答 3

2

要取消对 Current 对象所做的编辑BindingSources,BindingSource 中包含的类型需要实现IEditableObject 接口

于 2014-11-08T02:19:37.157 回答
0

我有同样的问题没有任何答案。简单的方法是在按下取消按钮时重新加载 bindingSource。

于 2013-02-07T15:46:30.350 回答
0

你不能通过 BindingSource.CancelEdit 来做到这一点。相反,您可以在编辑模式下取消绑定单个绑定控件(例如 TextBoxes),然后如果用户决定取消新输入的值,则再次将它们绑定到绑定源。否则,如果一切顺利并且用户决定保存它们,请将 BindingList 上的旧值替换为新值并保留它们。

于 2013-09-10T07:07:48.693 回答