2011-08-17 26 views
3

我在寫一個自定義控件。它有一個由控件提供「默認」值的依賴項屬性。此值可隨時更改。依賴屬性優先。我希望本地值可以被覆蓋

我希望能夠通過樣式或其他方式覆蓋此值,但WPF強加的依賴項屬性優先級意味着我的本地默認值總是勝出。

在編寫控件時,是否有任何推遲到其他來源的方式?

回答

2

我想我已經找到了解決辦法。

我現在公開兩個屬性。控件更新的「默認」,以及標準控件。在我的默認控件樣式中,我將標準樣式綁定到默認樣式,以便獲取值,但仍可以綁定到xaml中的其他東西。

3

您可以嘗試通過DependencyObject.ClearValue()清除本地值。我不認爲你可以改變order of precedence for dependency properties

+0

非常感謝,但不幸的是,控制將相當有規律地更新本地值,所以任何清除將再次設置。 – GazTheDestroyer 2011-08-17 13:27:33

+0

@GazTheDestroyer:我認爲情況就是這樣。看到我對你的回答有關使用「UnsetValue」作爲你的依賴屬性的評論。 – 2011-08-17 13:28:25