簡體   English   中英

如何在xaml中使用硬編碼值的轉換器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM