AppResources,动态查找变量

本文关键字:变量 查找 动态 AppResources | 更新日期: 2023-09-27 17:50:20

我正在使用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()设置最小值。next (min,total);仅供参考:)

AppResources,动态查找变量

您应该能够像这样使用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"的资源,其中包含您存储的"tips"的总数。您也可以通过迭代来"计数"它们,直到GetString返回null(当没有找到资源时它会这样做)。

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