[英]How to use a converter on a hard-coded value in xaml
我有一個Windows Phone應用程序,我想要本地化。 因為我在運行時從服務器下載翻譯,所以我不能使用AppResources。 我想要做的是創建一個轉換器,將轉換值中的字符串更改為字符串。 就像是 :
Text="{"STRING_OK", Converter={StaticResource TranslationConverter}}"
當然,這段代碼不能編譯,但有沒有解決方法呢? 我怎樣才能將轉換器用於硬編碼值?
另一種比創建MarkupExtension
更簡單的解決方法是將硬編碼值設置為轉換器參數。 無論如何,正如@KingKing已經指出的那樣,我們仍然需要綁定才能使用Converter
。 我們可以讓轉換器忽略通過綁定傳遞的值,只考慮轉換邏輯中的ConverterParameter
:
Text="{Binding Converter={StaticResource TranslationConverter},
ConverterParameter=STRING_OK}"
您無法為各種語言創建固定數量的AppResource,因為您的情況是動態轉換過程,但您仍然可以為您的硬編碼字符串值創建一個Appresource文件,然后您可以使用我們自己的轉換器。
Text =“{Binding Path = LocalizedResources.TextLabelLocale,Source = {StaticResource LocalizedStrings},Converter = {StaticResource TranslationConverter}}”
public class LocalizedStrings {public LocalizedStrings(){}
private static sdkGlobalizationCS.AppResources localizedResources = new sdkGlobalizationCS.AppResources();
public sdkGlobalizationCS.AppResources LocalizedResources { get { return localizedResources; } }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.