2017-02-09 5 views
0

Рассмотрите большой TreeView; некоторые узлы и подузлы расширены, другие свертываются. Пользователь добавляет дочерний узел к узлу, и программа сохраняет все обратно в основной XML-файл. Затем TreeView перестраивает. Проблема в том, что расширяется только корневой узел; все остальные узлы свернуты.Сохранение и восстановление состояния TreeView в C#

Кто-нибудь когда-либо видел код (я не думаю, что в WPF что-то встроено), который сохраняет состояние TreeView (какие узлы расширены), а затем он может восстановить его в этом состоянии после сохранения ?

Любые идеи?

Редактировать

Ну, что ссылка на самом деле не поможет. Я собираюсь создать массив и сохранить состояние isExpanded, а затем прочитать его после загрузки.

+1

Maybee это сообщение может помочь вам http://stackoverflow.com/questions/3989018/save-wpf-treeview-state-on-data-reload – live2

+0

Спасибо! Это должно помочь! – zetar

+0

Не могли бы вы объяснить, почему связанный подход не помог? – Ron

ответ

0

Необходимо управлять состояниями древовидной структуры напрямую и учитывать, когда узел расширен или свернут. Затем при загрузке или обновлении откройте/закройте узлы по мере необходимости.

+0

Я думаю, что я могу просто пройти дерево и посмотреть, IsExpanded = true; – zetar

+0

@zetar Создайте класс для расширения или инкапсулированного класса для данных с помощью свойства IsExpanded и установите/используйте эту переменную. – OmegaMan

Смежные вопросы