2012-02-13 70 views
2

我有一个自定义控件,我在其中创建了一个名为TheObject的自定义DependencyProperty,该对象可以包含通用对象。依赖属性的数据绑定丢失

<comp:MyControl TheObject="{Binding Country}" /> 

有时候,我需要设置TheObject内部(通过代码,在内部的控制)。

我做了这样的事情:

this.TheObject = new Country(); 

但我意识到,这是造成DataBinding的损失和控制变得不响应数据的变化。 我真正想要的是这个新对象仍然附着在物业现有的DataBinding上。

回答

3

使用SetCurrentValue

此方法用于通过编程设置自己的属性之一的值,而无需禁用应用程序的声明使用该属性的一个组成部分。 SetCurrentValue方法更改属性的有效值,但现有的触发器,数据绑定和样式将继续工作。

this.SetCurrentValue(TheObjectProperty, new Country()); 
+0

谢谢。它运行良好。我试图使用'SetValue'方法。 – 2012-02-16 01:42:00