0

如何使用 WPF 在 VB 中声明 BindingSource?我不能像以前使用 Windows 窗体而不是 WPF 时那样使用 BindingSource.CancelEdit() 之类的命令...

4

2 回答 2

2

您可以为此使用 BindingGroup:在 XAML 中的元素上设置 BindingGroup,该元素包含编辑对象的所有控件。默认情况下,这会将这些控件上的 UpdateSourceTrigger 设置为 Explicit,这意味着您必须调用 BindingGroup.UpdateSources 才能实际更改当前正在编辑的对象的属性。因此,您可以在提交命令或类似命令中执行此操作。

如果要取消编辑,可以使用 BindingGroup.CancelEdit 来完成。这将丢弃控件中的缓存值并将它们重置为绑定属性的值。

我认为这比实现 IEditableObject 或 Memento 容易得多......

于 2012-10-12T12:38:41.203 回答
1

简短的回答不是好消息 - 这不是等效的方法。相反,您的方法需要有所不同。一种方法是在基础类上实现IEditableObject (或将其包装在可编辑类中)。第二个是实现撤消/重做功能。我想你会发现搜索上面加粗的术语和/或纪念品模式你会发现很多很好的例子,下面是一个。

使用 WPF 绑定取消更新

于 2012-10-12T09:50:56.370 回答