-1

いくつかのデータを表示し、ユーザーがクリックするたびに単位を「x」->「y」->「z」->「x」に変更するWPFアプリがあります。これを達成するための最良の方法は何ですか?

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 に答える