Хранение нескольких множеств состояний для одного экземпляра страницы
Обновлен: Ноябрь 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. |
См. также
Задачи
Сохранение одного набора экземпляров состояний страниц
Хранение нескольких множеств состояний для одного экземпляра страницы