使用以下WPF TextBox
,在绑定源更新后调用:
TextBox_SourceUpdated
是否有在绑定源更新之前触发的事件?
更新
我已经开始在<TextBox Text="{Binding Path=title, NotifyOnSourceUpdated=True}"
SourceUpdated="TextBox_SourceUpdated" />
事件和GetBindingExpression(TextBox.TextProperty).UpdateSource()
中调用LostFocus
。我对此方法非常不满意,因为我最终不得不:
UpdateSourceTrigger=Explicit
未断开连接DataContext
这很痛苦,所以我正在寻找别的东西;更简单的东西。
第二次更新
所以我放弃了。我决定恢复使用SourceUpdated事件(在名称暗示更新源之后触发),并且在任何源更新发生之前始终保留sqlite保存点,允许在更新发生之前始终返回。
答案 0 :(得分:1)
我认为您无法直接使用Binding事件做任何事情。根据您要实现的目标,TextChanged和PreviewLostKeyboardFocus事件的某些组合可能会满足您的需求。这两个事件都将在SourceUpdated之前发生。 TextChanged事件将在每个键条目上触发,但使用LostFocus的默认UpdateSourceTrigger PLKF将在绑定推送更新和SourceUpdated触发之前触发一次。
答案 1 :(得分:0)
我能想到的模拟这种功能的唯一方法是使用代理属性进行双重绑定。例如:
属性A:{Binding ABProxy,Mode = TwoWay}
属性B:{Binding ABProxy,Mode = TwoWay}
属性ABProxy :(用作代理,绑定源和目标)
然后你可以听A更新它的来源,在 B更新之前做做一些事情,或者监听代理更改等等。
如果您有单向绑定,则可以绑定到代理属性,并在更新后,决定是否将更改传播到属性B.