AppResources,动态查找变量

时间:2014-03-15 13:00:59

标签: c# database mvvm windows-phone-8 resources

我正在使用MVVM开发一个Windows Phone应用程序,我想将AppResources用作字符串的数据库,之后我可以使用本地化应用程序。我有一个加载弹出窗口,我会显示一些提示。

所以我的数据库就像

  • tip_1记得跑步
  • tip_2了解
  • tip_3依旧

然后我想在我的代码中设置每次显示加载屏幕时都带有新提示的变量。 所以我的问题是如何做到这一点。

我现在使用一个开关盒,随机取一个数字,然后显示提示。但这意味着每次我向数据库添加一个新条目AppResources。我必须更新开关。我想在AppResources中搜索,因为动态变量名是不可能的。

我在想像这样的伪代码

Random rnd = new Random();
int TipMax = Convert.ToInt32(AppResources.TipCount);
int i = rnd.Next(1, TipMax);
BoundVariable = Resources(String.Concat("Tip_",i.ToString());

但我无法做到,有人有解决方案吗?

附加

我找到了ResourceManager类,它也存在于Windows Phone中,但无法实现。

注意 下面的正确答案,你应该记住Random()的最小值。接下来(min,total);仅供参考:)

1 个答案:

答案 0 :(得分:2)

您应该可以使用ResourceManager方法使用GetString类:

var total = int.Parse(AppResources.ResourceManager.GetString("tip_total"));
// generate random number
var number = new Random().Next(total);
var tip = AppResources.ResourceManager.GetString("tip" + number);

这将假设您有一个名为“tip_total”的资源,其中包含您存储的“提示”总数。您也可以迭代以“全部”计算它们,直到GetString返回null(当找不到资源时它会这样做。)

将上面的AppResources替换为手机应用程序中的资源文件名称。