2012-02-13 67 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