У меня есть TabControl
, и под ним у меня есть несколько элементов, таких как TreeView
и DataGrid
. Когда я расширяю дерево и изменяю размер столбцов сетки данных, если я затем перейду на другую вкладку и вернусь, все состояние пользовательского интерфейса будет забыто. Мне нужно повторно развернуть дерево и изменить размер столбцов.Как сохранить состояние интерфейса WPF?
Есть ли разумный и существующий способ сохранить состояние пользовательского интерфейса? Давайте разделим это в -
- временно (в памяти) и
- постоянный (на диске).
Итак, я бы поместил все свойства, которые хочу сохранить в моей модели просмотра? Я думаю, что моя модель взгляда быстро раздулась. Существует ли общий подход к этому вопросу, т. Е. У меня есть два вида дерева, поэтому я префикс свойств IsExpanded, таких как 'FooTreeViewIsExpanded' и' BarTreeViewIsExpanded'? – Tower
@rFactor - Нет, свойство IsExpanded перейдет к Модели вашего TreeViewItem; посмотрите эту статью для объяснения - [Упрощение WPF TreeView с помощью шаблона ViewModel] (http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode) – akjoshi
@rFactor - и в случае, если вы хотите сохранить много состояний ваших элементов управления/окна, вы можете использовать ProjectSettings approch; см. ссылки, предоставленные в ответ. – akjoshi