-1

我有一个 WPF 应用程序,它显示一些数据,并在用户单击它时将其单位从“x”->“y”->“z”->“x”更改。实现这一目标的最佳方法是什么?

ps:我在这里看到了关于循环的问题,使用foreach,但只要列表结束,它们就不会回到第一个选项。

4

2 回答 2

2

您可以通过保持集合以及当前位置来循环遍历集合并返回开始。例如,使用这些值:

int currentUnit = 0;
List<string> units = new List<string>() { "x", "y", "z" };

您可以通过以下方式在“点击”中“循环”:

string GetNextUnit()\
{
    if (++currentUnit == units.Count) current = 0;
    return units[currentUnit];
}
于 2012-09-26T17:22:53.607 回答
1

创建一个enum来保存单位。

public enum Units
{
    Kms,
    Miles,
    Knots
}

拥有持有当前单位的财产

public Units CurrentUnit { get; set; }

然后,当用户单击按钮时,循环遍历单元以获取下一个。

if (CurrentUnit == Enum.GetValues(typeof(Unit)).Cast<Unit>().Last())
{
    CurrentUnit = Unit.km;
}
else
{
    CurrentUnit = (Unit) (int) CurrentUnit + 1;
}

可能有一种更好的方法来循环这些值,但我现在想不出一个。不过,这会做到。

于 2012-09-26T17:29:49.967 回答