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