いくつかのデータを表示し、ユーザーがクリックするたびに単位を「x」->「y」->「z」->「x」に変更するWPFアプリがあります。これを達成するための最良の方法は何ですか?
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;
}
値を循環させるもっと良い方法があるかもしれませんが、今は思いつきません。これはそれを行います。