丢失依赖项属性的数据绑定

时间:2012-02-13 19:21:40

标签: wpf data-binding dependency-properties

我有一个自定义控件,我在其中创建了一个名为DependencyProperty的自定义TheObject,可以包含一个通用对象。

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

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

我做了类似的事情:

this.TheObject = new Country();

但我意识到它导致了DataBinding的丢失,并且控件变得无法响应数据更改。 我真正想要的是这个新对象仍然附加到属性的现有DataBinding

1 个答案:

答案 0 :(得分:3)

使用SetCurrentValue

  

此方法由组件使用,该组件以编程方式设置其自身属性之一的值,而不禁用应用程序声明的属性使用。 SetCurrentValue 方法会更改属性的有效值,但现有的触发器,数据绑定和样式将继续有效。

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