我有一个 WPF 应用程序,它显示一些数据,并在用户单击它时将其单位从“x”->“y”->“z”->“x”更改。实现这一目标的最佳方法是什么?
ps:我在这里看到了关于循环的问题,使用foreach
,但只要列表结束,它们就不会回到第一个选项。
您可以通过保持集合以及当前位置来循环遍历集合并返回开始。例如,使用这些值:
int currentUnit = 0;
List<string> units = new List<string>() { "x", "y", "z" };
您可以通过以下方式在“点击”中“循环”:
string GetNextUnit()\
{
if (++currentUnit == units.Count) current = 0;
return units[currentUnit];
}
创建一个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;
}
可能有一种更好的方法来循环这些值,但我现在想不出一个。不过,这会做到。