gpt4 book ai didi

c# - AppResources,动态查找变量

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:04 24 4
gpt4 key购买 nike

我正在使用 MVVM 开发一个 Windows Phone 应用程序,我想将 AppResources 用作字符串的数据库,这使我能够本地化该应用程序。我有一个加载弹出窗口,其中显示了一些提示。

所以我的数据库是这样的

  • tip_1 记得运行
  • tip_2 小心
  • tip_3 等等

然后我希望在我的代码中设置每次显示加载屏幕时都与新提示绑定(bind)的变量。所以我的问题是如何聪明地做到这一点。

我现在使用一个开关盒,它随机取一个数字,然后显示提示。但这意味着每次我向我的数据库 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); 设置最小值;仅供引用:)

最佳答案

您应该能够使用 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 替换为您在手机应用程序中的资源文件名。

关于c# - AppResources,动态查找变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22424141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com