IProvideCustomContentState インターフェイス

定義

コンテンツが移動する前に、コンテンツのナビゲーション履歴エントリにカスタム状態を追加する必要があるクラスによって実装されます。

public interface class IProvideCustomContentState
public interface IProvideCustomContentState
type IProvideCustomContentState = interface
Public Interface IProvideCustomContentState

注釈

IProvideCustomContentState を使用すると、カスタム CustomContentState クラスとして実装されたカスタム状態の一部を、移動先のコンテンツのナビゲーション履歴エントリに関連付けることができます。

次を使用して、この方法でカスタム状態を関連付けることもできます。

AddBackEntry を呼び出してカスタム状態をナビゲーション履歴に追加する場合は、IProvideCustomContentStateを実装する必要があります。それ以外の場合、ナビゲーション履歴は正しく機能しません。次の手順を考慮してください。

  1. AddBackEntry は、カスタム状態を現在のコンテンツに関連付けるために呼び出されます。

  2. ナビゲーション履歴エントリに戻り、カスタム状態の Replay メソッドが呼び出され、状態がコンテンツに適用されます。

  3. 前のコンテンツは、前方ナビゲーション履歴内に移動されます。

  4. ナビゲーション履歴エントリに戻りますが、関連付けられたナビゲーション履歴エントリが最後に移動されてから、カスタム状態は保持されていません。

これは既定の動作です。カスタム状態で最初に記録された状態は、ナビゲーション履歴に追加された後に変更される可能性があるためです。 カスタム状態オブジェクトに戻り、その状態が適用されている場合、ナビゲーション履歴のエントリが移動する前に状態に関する一部の側面が変更される前に、状態の変更をカスタム状態オブジェクトに反映できません。 さらに、 AddBackEntry を明示的に呼び出して、状態の変化を反映する新しいカスタム状態オブジェクトを追加することはできません。 その結果、特定のナビゲーションの現在の状態が常にナビゲーション履歴に格納されるようにするために、 GetContentState が呼び出されます。

Important

カスタム コンテンツ状態で情報を格納する場合、状態を記憶しているページのインスタンスへの参照を格納することはできません。 これにより、WPFはページ インスタンスを解放できず、既定のナビゲーション履歴の動作の目的を打ち負かします。 これを行う必要がある場合は、代わりに KeepAlive を使用することを検討してください。

メソッド

名前 説明
GetContentState()

ナビゲーション履歴のコンテンツに関連付けるカスタム状態クラスのインスタンスを返します。

適用対象