DynamicResource的后备值

时间:2012-10-02 20:17:32

标签: c# wpf data-binding

我的应用程序从单独的XAML文件中定义的资源字典中加载所有字符串。运行时可能不存在DynamicResource密钥。

<CheckBox Content="{DynamicResource myKeyThatIsMissing}"/>

在正常绑定中,有一个可以像这样使用的Fallback值:

Text="{Binding StringToShow, FallbackValue=DefaultValue}

如果资源键不存在,是否可以为使用DynamicResource的属性集设置默认的Fallback值?

1 个答案:

答案 0 :(得分:0)

System.Windows.DynamicResourceExtension是未密封的,因此您可以通过覆盖ProvideValue方法扩展它并添加所需的逻辑。

不幸的是,默认实现会返回内部ResourceReferenceExpression类的实例,因此您可能需要做一些反思或其他魔术才能使其工作。