2012-10-02 52 views
4

我的應用程序從單獨的XAML文件中定義的資源字典中加載所有字符串。運行期間,密鑰DynamicResource可能不存在。DynamicResource的回退值

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

在一個正常的綁定存在是可以這樣使用回退值:

Text="{Binding StringToShow, FallbackValue=DefaultValue} 

是否有可能有一個與DynamicResource設置屬性時使用,如果一個默認的備用值資源密鑰不存在?

+1

嘗試應用樣式並指定屬性設置器的默認值。 – FlyingStreudel

+0

你能舉一個這樣的例子嗎?我不知道如何在setter中設置默認值。 – burnttoast11

+0

http://rhyous.github.io/WPFSharp.Globalizer/這應該做你想做的。但它創建了一個新的擴展(DynamicResouce本身也是一個擴展btw)。 –

回答

0

類別System.Windows.DynamicResourceExtension被解封,因此您可以通過覆蓋ProvideValue方法來擴展它並添加所需的邏輯。

不幸的是,默認實現返回內部ResourceReferenceExpression類的一個實例,所以你可能需要做一些反射或其他魔法才能使它工作。