我正在使用LocalizedResources
来获取WP 8.1应用的本地化。但如果我使用这样的代码:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
string xyz = string.Empty;
NavigationContext.QueryString.TryGetValue("znam", out xyz);
tekstZnamenitosti.Text = AppResources.tekstTrsat;
}
然后我必须有许多if语句来检查每个znamenitost
。有没有办法使用
tekstZnamenitosti.Text = AppResources.xyz;
其中xyz是我之前创建的字符串,其中包含从我导航过的页面传递的值。
答案 0 :(得分:4)
您可以使用 ResourceManager :
获取AppResources
值
tekstZnamenitosti.Text = AppResources.ResourceManager.GetString("xyz");
答案 1 :(得分:2)
稍微延长Chris Shao's answer(+ 1) - 也许有人觉得它很有用:
为资源创建特殊类:
namespace YourNamespace
{
public class AppRes
{
private static ResourceLoader load = new ResourceLoader();
private static string GetProperty([CallerMemberName] string propertyName = null) { return propertyName; }
public static string PropertyName { get { return load.GetString(GetProperty()); } }
}
}
在App.xaml中,将密钥添加到资源:
<Application.Resources>
<local:AppRes x:Key="Localized"/>
// ... rest of the code.
现在,您可以轻松地使用代码中的 Resources :
string fromResources = AppRes.PropertyName;
并在XAML中:
<TextBlock Text="{Binding PropertyName, Source={StaticResource Localized}}" ...
您需要做的一件事是将资源添加到 Resources.resw 后,您必须添加另一行:
public static string NewPropertyName { get { return load.GetString(GetProperty()); } }
答案 2 :(得分:0)
是的,您可以在App.xaml.cs
中使用字符串值,例如
public static string xyz;
然后,您可以将所需的值保存到您在App.xaml.cs中创建的变量。
tekstZnamenitosti.Text = App.xyx;
您可以在应用中的任何位置使用此变量。