共用方式為


跨頁面執行個體記憶單組狀態

更新:2007 年 11 月

這個範例說明如何使用 IProvideCustomContentStateCustomContentState,記住跨頁面執行個體多項頁面狀態。

這個範例示範 Windows Presentation Foundation 的特定功能,因此並未遵循應用程式開發的最佳做法。如需 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 應用程式開發最佳做法的完整內容,請依適當情況參閱下列內容:

協助工具 - 協助工具最佳作法

當地語系化 - WPF 全球化和當地語系化概觀

效能 - 最佳化 WPF 應用程式效能

安全性 - Windows Presentation Foundation 安全性

Download sample

建置範例

  • 安裝 Windows Software Development Kit (SDK),然後開啟 [建置環境命令] 視窗。在 [開始] 功能表中,指向 [所有程式]、[Microsoft Windows SDK],然後按一下 CMD 殼層。

  • 接著,在軟體開發套件 (SDK) 文件處下載軟體,並存至您的硬碟上。

  • 若要組建建置環境命令視窗的範例,您必須先移至範例的來源目錄在命令提示字元中,輸入 MSBUILD。

  • 若要在 Microsoft Visual Studio 中建置範例,請載入範例方案或專案檔,然後按下 CTRL+SHIFT+B。

執行範例

  • 若要在 [建置環境命令視窗] 中執行編譯後的範例,請執行位在包含範例原始程式碼的檔案夾 (Bin\Debug 或 Bin\Release 檔案夾) 下的 .exe 檔案。

  • 若要在 Visual Studio 中執行編譯後的範例並進行偵錯,請按 F5。

備註

Windows Presentation Foundation (WPF) 預設不會將頁面執行個體儲存在巡覽記錄中。每次巡覽至頁面時,都會建立頁面的新執行個體。因此,再次巡覽至該頁面時,並不會記住該頁面之第一個執行個體的任何狀態資訊。WPF 可以在巡覽記錄中保存頁面執行個體 (因而隱含保留頁面狀態),但是從記憶體耗用觀點來看,這十分耗成本。

不過,WPF 提供的基礎結構,可以讓您將狀態資訊隨頁面項目一起儲存在巡覽記錄中,並且在使用巡覽記錄巡覽至該頁面時,將該狀態資訊重新套用至新的頁面執行個體。

這個範例顯示頁面如何實作 IProvideCustomContentState 來記住涵蓋一個或多個項目的單組狀態。移離頁面時,WPF 會呼叫 GetContentState 來要求頁面提供需要記住的狀態。GetContentState 會傳回 CustomContentState 的子類別 (Subclass),這個子類別是建立來儲存和重新執行狀態。

當您需要跨頁面執行個體儲存數項頁面狀態時,這項技術十分實用。若要記住跨頁面執行個體單項狀態,應該考慮使用有日誌記錄功能的相依性屬性 (請參閱跨頁面執行個體記住單項狀態)。若要記住單一頁面執行個體的多組狀態,請參閱記住每個頁面執行個體的多組狀態

Aa972166.alert_caution(zh-tw,VS.90).gif重要事項:

當您以自訂內容狀態儲存資訊時,無法針對要記住狀態的頁面儲存任何執行個體參考。這樣會使得 WPF 無法釋放頁面執行個體,因而達不到預設巡覽記錄行為的目的。如果您必須這樣做,請考慮使用 KeepAlive

請參閱

工作

跨頁面執行個體記憶單組狀態

記住每個頁面執行個體的多組狀態