我有一个自定义控件,我在其中创建了一个名为DependencyProperty
的自定义TheObject
,可以包含一个通用对象。
<comp:MyControl TheObject="{Binding Country}" />
有时,我需要在内部设置TheObject
(通过代码,在内部设置控件)。
我做了类似的事情:
this.TheObject = new Country();
但我意识到它导致了DataBinding
的丢失,并且控件变得无法响应数据更改。
我真正想要的是这个新对象仍然附加到属性的现有DataBinding
。
答案 0 :(得分:3)
此方法由组件使用,该组件以编程方式设置其自身属性之一的值,而不禁用应用程序声明的属性使用。 SetCurrentValue 方法会更改属性的有效值,但现有的触发器,数据绑定和样式将继续有效。
this.SetCurrentValue(TheObjectProperty, new Country());