WPF:防止引发“StaticResource not be resolved”异常?

时间:2013-03-28 14:53:23

标签: wpf staticresource

正如我们知道的那样,如果找不到密钥,它会引发异常。 但是,有没有办法阻止这个,只是将控件的可见性设置为隐藏?或者像绑定一样给它一个 FallbackValue ? / p>

一个简单的例子:
<TextBlock Text="{StaticResource myKey}"/>
现在“myKey”没有被定义,它默认会引发异常。但是我希望我可以将TextBlock的Visiblity设置为隐藏:
<TextBlock Text="nothing here" Visibilty="Hidden">
或:
<TextBlock Text="nothing here" FallbackValue="default value">(注意:“FallbackValue”确实不存在)
然后申请可以继续。没有错,欢呼:)

2 个答案:

答案 0 :(得分:0)

到目前为止,我可以理解你的问题,你可以把你的代码放到try子句中,并捕获异常..它至少允许你用控件执行操作。 (记住你可以使用finally子句强行执行)..

如果我的假设是错误的,我会事先道歉并要求更具体:)祝你好运

答案 1 :(得分:0)

简单实施:
我们可以继承StaticResourceExtension(是的,它没有密封:)),然后覆盖ProvideValue方法,返回默认值。
解决:)