在我开始解释我的问题之前: 这Slider
只是以下问题的一个示例。我在一个自定义控件上工作,它必须像这里的滑块一样做非常相似的事情:
设想:
- 我已将 a 绑定
Slider.Value
到我的 ViewModel 属性,名为MyValue
. - 我已经定义
Maximum
了Slider
to100
。 - 现在我将属性设置
MyValue
为200
.
问题是什么?
- Slider 将在内部强制将该值设为 100。
- 但是该属性
MyProperty
没有更新。 - 在我的情况下(我构建的自定义控件),我需要稍后继续使用强制值(100),而不是旧的(200)值。
问题:
我可以在自定义控件中做些什么吗?
例如,我在我的 和 中都尝试过myControl.GetExpression(MyValueProperty).UpdateSource();
,CoerseValueCallback
但PropertyChangedCallback
无论我尝试什么,绑定的 ViewModel-property 的设置器永远不会被调用,并且该属性保持不同步。