gpt4 book ai didi

wpf - 当 BindingExpression 的来源改变时通知?

转载 作者:行者123 更新时间:2023-12-04 14:25:11 24 4
gpt4 key购买 nike

测试场景:

我有一个带有 DependencyProperty A 的控件。
我有一个带有属性 A 的 ViewModel,我使用 OneWayToSource 绑定(bind)绑定(bind)到控件的 A 属性。绑定(bind)由控件显式更新。

我在运行时切换了绑定(bind)的 ViewModel 实例,从而更改了绑定(bind)的基础源。
发生这种情况时,我希望触发一个事件,告诉我的控件我现在可以更新其 DependencyProperty A 的值。原因是,一旦您更改绑定(bind)的 ViewModel,DependencyProperty A 的 DefaultValue 就会写入源。
相反,我希望控件提供适当的值并手动更新源。

有人可能会认为只听 DataContextChanged 事件就可以解决问题。然而,当这个事件被触发时,BindingExpression 的 Source 仍然指向旧的 ViewModel。

我能想到的唯一 hackaround 是在 DataContextChanged 的​​ EventHandler 中使用 Dispatcher.BeginInvoke 和 DispatcherPriority.DataBind 优先级。

它有效,但对我来说并不干净。

我正在 Binding 类中寻找一个事件,该事件通知我有关源的更改......但是我找不到一个。

谢谢

最佳答案

也许我没有完全理解这个问题,但你能不能使用 NotifyOnSourceUpdatedNotifyOnTargetUpdated属性(以及相应的 SourceUpdatedTargetUpdated 事件)?

关于wpf - 当 BindingExpression 的来源改变时通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com