1

ユーザーが「進む」ボタンまたは「戻る」ボタンをクリックするかどうかに基づいて現在のオブジェクトを設定するアルゴリズムのコードを考え出そうとしています。

public Step CurrentStep
{
    get { return _currentStep; }
    set
    {
        if (_currentStep != value)
        {
            _currentStep = value;
            OnPropertyChanged("CurrentStep");
        }
    }
}

private int CurrentStepIndex { get; set; }

private void NextStep()
{
    CurrentStepIndex++;
    GotoStep();
}

private void PreviousStep()
{
    CurrentStepIndex--;
    GotoStep();
}

private void GotoStep()
{
    var query = from step in CurrentPhase.Steps
                where ????
                select step;

    CurrentStep = query.First();
}

CurrentPhase.StepsですObservableCollection<Step> Steps {get; set;}。そして、このクラスのコンストラクターには、プロパティ " CurrentStep" のデフォルト値を設定する手段があります。そのため、常に 1 つの値から飛び出すことができます。

CurrentStepこのコレクションを考えると、格納されているオブジェクトのインデックスを使用してCurrentStepIndex、このアイテムがコレクション内のどこにあるかを見つけ、そのインデックスをデクリメントまたはインクリメントして変更したいと考えていました。次に、ある種の linq クエリを使用して、新しいインデックスで「次のステップ」を見つけます。

残念ながら、LINQ クエリを作成するのに苦労しています。さらに、このアルゴリズムが機能するかどうかもわかりません。

このアルゴリズムが機能するように LINQ クエリを完了するには何が必要ですか?

または、私が望むものを達成するためのより良い方法はありますか?

4

2 に答える 2