IProvideCustomContentState 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
由一個類別實作,該類別需要在內容被導覽離開前,先為該內容的導航歷史條目加入自訂狀態。
public interface class IProvideCustomContentState
public interface IProvideCustomContentState
type IProvideCustomContentState = interface
Public Interface IProvideCustomContentState
備註
IProvideCustomContentState 允許你將一個自訂狀態(作為自訂 CustomContentState 類別實作)與已被導航離開的內容的導航歷史條目關聯起來。
自訂狀態也可以透過以下方式來關聯:
呼叫 AddBackEntry:
當以下事件之一被提出時的設定 NavigatingCancelEventArgs.Content :
當你呼叫 IProvideCustomContentState 加入自訂狀態到導航歷史時,必須實作,否則導航歷史將無法正常運作;請考慮以下步驟:
AddBackEntry 是用來將自訂狀態與目前內容關聯起來的。
導航歷史條目會被導回 Replay ,呼叫自訂狀態的方法,並將該狀態套用到內容上。
前述內容可導覽至前進導覽歷史紀錄。
導航歷史條目會導回,但自上次瀏覽該導航歷史條目後,該慣用狀態未被保留。
這是預設行為,因為最初以自訂狀態記錄的狀態在加入導航歷史後可能會改變。 如果自訂狀態物件被導回並套用其狀態,但在導覽歷史條目之前,狀態的某些變化尚未發生,則該狀態變更無法反映在自訂狀態物件中。 此外, AddBackEntry 無法明確呼叫來新增反映狀態變更的新自訂狀態物件。 因此,為確保特定航運的當前狀態始終儲存在導航歷史中, GetContentState 會被呼叫。
Important
當你將資訊儲存在自訂內容狀態時,你無法儲存任何指向你記憶頁面實例狀態的參考。 這會阻止 WPF 釋出頁面實例,也違背了預設導航歷史行為的初衷。 如果你必須這麼做,可以考慮改用 KeepAlive 它。
方法
| 名稱 | Description |
|---|---|
| GetContentState() |
回傳一個自訂狀態類別的實例,該類別將與導航歷史中的內容相關聯。 |