我的應用程式支持多種語言,并且這些語言存盤為資源字典,因此只需加載正確的資源即可更改它,無需重新啟動。
在一個視窗中,我需要根據 ViewModel 狀態顯示一些文本。TextBlock我試圖DynamicResource直接從我的 ViewModel回傳,而不是擁有多個元素和切換可見性。
我嘗試創建一個回傳 a 的屬性,DynamicResourceExtension但它不起作用,因為回傳的文本是類的名稱,而不是實際的資源。
public DynamicResourceExtension TextResource
{
get => return new DynamicResourceExtension("String.TextResource");
}
<TextBlock Text="{Binding TextResource, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
我也嘗試回傳一個字串并直接設定為DynamicResource,但它也沒有用。
<TextBlock Text="{DynamicResource {Binding TextResourceKey, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}}"/>
uj5u.com熱心網友回復:
無法從視圖模型回傳資源名稱并使用純 XAML 標記決議資源。
視圖模型應該回傳一個string您直接系結到的已決議值,或者您必須在視圖中撰寫一些代碼,以編程方式決議回傳的資源名稱的值。
無法“系結”到DynamicResourceXAML 中標記擴展的資源鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527038.html
標籤:wpf动态资源
