共用方式為


跨頁面執行個體記住單項狀態

更新:2007 年 11 月

這個範例示範如何使用相依性屬性,記住跨頁面執行個體 (Instance) 的單項頁面狀態。

這個範例示範 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 提供基礎結構,可讓您將具有頁面項目的狀態資訊儲存在巡覽記錄中。在這種情況下,您可以在具現化 (Instantiate) 頁面之後使用儲存的狀態重新建構該頁面的狀態。

這個範例顯示如何使用具有日誌記錄的相依性屬性,利用巡覽記錄來儲存和擷取頁面狀態。「具有日誌記錄的相依性屬性」是具有下列中繼資料 (Metadata) 的相依性屬性:

Journal

當您需要儲存跨頁面執行個體的單項頁面狀態時,這個技巧十分實用。若要記住跨頁面執行個體的單組狀態,應該考慮使用 IProvideCustomContentState (請參閱跨頁面執行個體記憶單組狀態)。若要記住單一頁面執行個體的多組狀態,請參閱記住每個頁面執行個體的多組狀態

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

當您以自訂內容狀態儲存資訊時,並不會儲存要記住其狀態之頁面執行個體的任何參考。這可避免 WPF 釋放此頁面執行個體,並且不會達到預設巡覽記錄行為的目的。如果您必須這樣做,請考慮使用 KeepAlive

請參閱

工作

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

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