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

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

在普通绑定(bind)中,有一个回退值可以像这样使用:
Text="{Binding StringToShow, FallbackValue=DefaultValue}

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

最佳答案

该类System.Windows.DynamicResourceExtension是未密封的,因此也许您可以通过重写ProvideValue方法来扩展它并添加所需的逻辑。

不幸的是,默认实现返回了内部ResourceReferenceExpression类的实例,因此您可能必须进行一些反射或其他魔术操作才能实现此目的。

10-08 03:55