【发布时间】:2015-03-18 04:27:12
【问题描述】:
我不确定要搜索什么关键字...迷失在谷歌的海洋中。
我在 ViewModel 中的可视元素(滑块)和数值之间指定了双向数据绑定。我想区分值更改是用户发起的还是基于 ViewModel 的,这样我就可以有选择地在我的应用程序的其他地方触发事件。如何在 XAML 文件的代码隐藏中执行此操作?
2015-02-26 更新:在回答 Amit 的问题时,为什么我需要此功能是因为我实际上为同一个 ViewModel 源的 2 向数据绑定设置了多个可视元素,因此不区分会导致对本身有能力更新相同值的依赖代码的回调中的无限循环(堆栈溢出)。
除此之外 - 第一次适当地使用 SO 上的“堆栈溢出”不应该有声誉点吗?
【问题讨论】:
-
好吧,我很困惑。您想要响应 XAML 文件代码隐藏中的 ViewModel 属性更改?好像你在这里混合世界。您打算如何在 ViewModel 和代码隐藏之间进行通信?
-
@David Cuccia 为什么你想知道是谁修改了它?
-
如果 UI 设置了一个值,则源正在更新.. 如果 VM 设置了一个值,则目标正在更新.. 在我看来你正在寻找这个:msdn.microsoft.com/en-us/library/ms746700%28v=vs.110%29.aspx
-
@AmitRaz 我本来可以更清楚的。实际上,我有不止一个可视元素与同一个 ViewModel 源的 2 路数据绑定,所以 not 区分会导致在对相关代码的回调中出现无限循环(堆栈溢出;))。
-
@devhedgehog 谢谢。我会记住这个钩子。
标签: c# wpf xaml mvvm data-binding