在AppResources中使用字符串

时间:2014-06-17 07:27:43

标签: c# windows-phone windows-phone-8.1

我正在使用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是我之前创建的字符串,其中包含从我导航过的页面传递的值。

3 个答案:

答案 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;

您可以在应用中的任何位置使用此变量。