Я использую TreeView
, чтобы позволить пользователю легче перемещаться по сложной структуре данных. Я пытаюсь добавить функцию в свое приложение, чтобы мои пользователи могли добавлять новые элементы в структуру данных, нажимая кнопку на панели инструментов. Этот новый предмет имеет 3 уровня, каждый с 1 предметом. Я хотел бы выбрать предмет на самом низком уровне.
Добавление данных не проблема, я просто добавляю новый элемент в коллекцию, который привязан к TreeView
в конкретном случае. Я могу найти элемент вручную, просматривая TreeView
, так что я знаю, что добавление работает. Теперь я хочу установить выбор нового элемента программно. Таким образом, пользователь может изменить настройки по умолчанию в элементе сразу.
Я провел некоторое тестирование и обнаружил, что настройка выбора выполняется с помощью чего-то вроде:
var obj = TreeView.ItemContainerGenerator
.ContainerFromItem(selectedObject) as TreeViewItem;
obj.IsSelected = true;
Я пытался добавить этот код сразу после моего метода Add. Функция добавления возвращает новый объект и помещает его в selectedObject . Метод Add добавляет к ObservableCollection
, что вызывает соответствующие события.
Но, obj всегда равен null сразу после добавления.
Я пытался установить выделение в событии LayoutUpdated, но в этом случае переменная obj из предыдущего кода всегда снова равна нулю.
Я думаю, что мне здесь чего-то не хватает. У кого-нибудь есть идея, как добавить новый элемент в ограниченную коллекцию и выбрать этот элемент в TreeView
?