Поделиться через


Хранение нескольких множеств состояний для одного экземпляра страницы

Обновлен: Ноябрь 2007

Этот пример демонстрирует хранение нескольких множеств состояний для одного экземпляра страницы и переход между ними.

В этом примере описывается конкретная функциональная возможность Windows Presentation Foundation, и поэтому рекомендации по разработке приложений не соблюдаются. Более полное рассмотрение Windows Presentation Foundation (WPF) и рекомендации по тактике разработки приложений Microsoft .NET Framework см. в следующих разделах:

Специальные возможности: Рекомендации по специальным возможностям

Локализация: Общие сведения о глобализации и локализации WPF

Производительность: Улучшение производительности приложений WPF

Безопасность: Безопасность Windows Presentation Foundation

Download sample

Построение примера

  • Установите пакет средств разработки программного обеспечения для Windows и откройте окно командной строки среды его построения. В меню "Пуск" выделите пункты "Все программы", "Пакет SDK для Microsoft Windows", а затем "Оболочки CMD".

  • Загрузите образец, как правило из документации пакета SDK, на жесткий диск.

  • Чтобы построить образец из окна командной строки среды построения, перейдите в исходный каталог образца. В командной строке введите MSBUILD.

  • Чтобы построить образец в Microsoft Visual Studio, загрузите решение образца или файл проекта и нажмите сочетание клавиш CTRL + SHIFT + B.

Выполнение примера

  • Для запуска скомпилированного образца в окне командной строки среды построения, выполните EXE-файл в папке Bin\Debug или Bin\Release, содержащихся в папке кода источника образца.

  • Для запуска скомпилированного образца с помощью отладки в Visual Studio, нажмите клавишу F5.

Примечания

Переход между состояниями позволяет регистрировать изменение состояния фрагмента содержимого как запись в журнале переходов, к которой можно впоследствии перейти. При переходе к тому или иному состоянию, записанному в журнале навигации, это состояние восстанавливается.

В данном примере демонстрируется переход к различным состояниям путем сохранения истории состояний при изменении выбранного элемента в списке. Каждая запись о состоянии хранится в пользовательском объекте CustomContentState и добавляется в журнал переходов путем вызова метода AddBackEntry, добавляющего начальную запись, и метода GetContentState обеспечивающего гарантию сохранения записи между переходами. Кроме того, демонстрируется удаление записи о переходе из журнала переходов.

Этот метод особенно полезен, когда необходимо сохранить несколько наборов состояний для одного экземпляра страницы и перемещаться между ними. Если требуется сохранить отдельный элемент состояния для нескольких экземпляров страницы, подумайте об использовании журналируемого свойства зависимости (см.: Сохранение одиночного элемента состояния экземпляров страницы). Если необходимо сохранить одиночный набор состояний для нескольких экземпляров страницы, рассмотрите возможность использования интерфейса IProvideCustomContentState (см. раздел Сохранение одного набора экземпляров состояний страниц).

ms771388.alert_caution(ru-ru,VS.90).gifВажное примечание.

При хранении информации о состоянии в пользовательском содержимом проследите за тем, чтобы не сохранять ссылки на экземпляр страницы, состояние которой вы сохраняете, когда покидаете страницу. Сохранение такой ссылки не позволяет WPF освободить экземпляр страницы и не согласуется со стандартным поведением журнала переходов. Если это сделать необходимо, воспользуйтесь методом KeepAlive.

См. также

Задачи

Сохранение одного набора экземпляров состояний страниц

Хранение нескольких множеств состояний для одного экземпляра страницы