DynamicResource 的回退值

bur*_*t11 5 c# data-binding wpf

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

<CheckBox Content="{DynamicResource myKeyThatIsMissing}"/>
Run Code Online (Sandbox Code Playgroud)

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

Text="{Binding StringToShow, FallbackValue=DefaultValue}
Run Code Online (Sandbox Code Playgroud)

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

Dre*_*kes 1

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

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