Silverlight:设置属性直接删除数据绑定?

问题描述:

我正在修改一个Silverlight项目,它大量使用后面的代码来设置属性等。这是几年前创建的,几乎从WinForms项目移植过来。Silverlight:设置属性直接删除数据绑定?

我注意到的问题是,当我为一个属性设置数据绑定时,在这种情况下可见性,如果该属性直接在代码后面设置,那么数据绑定将被删除。我甚至在PropertyChanged事件中设置了断点来验证情况。

我已经做了很多的WPF开发,从来没有注意到这一点。这是正常的,我错过了,或者是不正确的?

看起来很正常。

绑定背后的概念是,目标属性上的值是绑定到源对象上的属性。同时绑定目标属性将始终反映源属性的值。只要您将自己的值分配给目标属性,目标属性不再反映来源的值,则已打破两者之间的绑定。因此,设置您自己的值将删除绑定。

但是,如果将绑定的Mode设置为TwoWay,则Silverlight只将新值分配给源对象上的属性,并维护绑定,因为目标属性仍反映源属性的值。

+0

你说得对,它确实有道理。我以前从未想过这件事。我试图找出为什么我的绑定不起作用,我遇到了一些严重的麻烦。 – Telavian 2011-05-07 15:46:58