Хранение нескольких множеств состояний для одного экземпляра страницы
Обновлен: Ноябрь 2007
Этот пример демонстрирует хранение нескольких множеств состояний для одного экземпляра страницы и переход между ними.
В этом примере описывается конкретная функциональная возможность Windows Presentation Foundation, и поэтому рекомендации по разработке приложений не соблюдаются. Более полное рассмотрение Windows Presentation Foundation (WPF) и рекомендации по тактике разработки приложений Microsoft .NET Framework см. в следующих разделах:
Специальные возможности: Рекомендации по специальным возможностям
Локализация: Общие сведения о глобализации и локализации WPF
Производительность: Улучшение производительности приложений WPF
Безопасность: Безопасность Windows Presentation Foundation
Построение примера
Установите пакет средств разработки программного обеспечения для 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 (см. раздел Сохранение одного набора экземпляров состояний страниц).
![]() |
---|
При хранении информации о состоянии в пользовательском содержимом проследите за тем, чтобы не сохранять ссылки на экземпляр страницы, состояние которой вы сохраняете, когда покидаете страницу. Сохранение такой ссылки не позволяет WPF освободить экземпляр страницы и не согласуется со стандартным поведением журнала переходов. Если это сделать необходимо, воспользуйтесь методом KeepAlive. |
См. также
Задачи
Сохранение одного набора экземпляров состояний страниц
Хранение нескольких множеств состояний для одного экземпляра страницы