我有一个宽度和宽度的画布。高度是数据绑定,例如宽度:
Width="{Binding DrawingSize.Width, NotifyOnTargetUpdated=True}"
。
当我将代码中某处的Canvas&W的宽度设置为另一个值时,Binding将丢失
有人可以解释为什么会这样或MSDN解释它吗?
答案 0 :(得分:1)
MSDN在Dependency Property Value Precedence:
中解释了这一点动态资源和绑定优先于它们所在的位置 设置,但值被推迟。这样做的一个后果就是如果你 设置动态资源或绑定到本地值,任何更改 本地值完全替换动态资源或绑定。
您可以使用SetCurrentValue更改当前值,而不会覆盖任何内容。但是,即使有这种方法的有效用法,我个人也不会推荐它。您可能遇到其他问题,例如“谁设置此值,这不是我预期的那个”,或者“绑定已经过早改变,我失去了当前值”。请考虑使用相同MSDN页面中描述的强制机制。