【发布时间】:2011-08-17 12:55:33
【问题描述】:
我正在编写一个自定义控件。它有一个依赖属性,由控件提供一个“默认”值。该值可以随时更改。
我希望能够通过样式或其他方式覆盖此值,但 WPF 强加的依赖属性优先级意味着我的本地默认值总是获胜。
在编写控件时有什么办法可以推迟到其他来源吗?
【问题讨论】:
标签: wpf dependency-properties operator-precedence
我正在编写一个自定义控件。它有一个依赖属性,由控件提供一个“默认”值。该值可以随时更改。
我希望能够通过样式或其他方式覆盖此值,但 WPF 强加的依赖属性优先级意味着我的本地默认值总是获胜。
在编写控件时有什么办法可以推迟到其他来源吗?
【问题讨论】:
标签: wpf dependency-properties operator-precedence
您可以尝试通过DependencyObject.ClearValue() 清除本地值。我认为你不能更改order of precedence for dependency properties。
【讨论】:
我想我已经找到了解决办法。
我现在公开两个属性。控件更新的“默认”控件和标准控件。在我的默认控件样式中,我将标准控件绑定到默认控件,以便它获取值,但仍然可以绑定到 xaml 中的其他内容。
【讨论】:
DependencyProperty 自己的UnsetValue 属性? msdn.microsoft.com/en-us/library/…