У меня есть Treeview (показано выше) в моем приложении, я связал его с коллекцией... теперь проблема заключается в том, что каждый раз, когда я расширяю Colorodo по умолчанию, Aspen должен быть выбран, значит всякий раз, когда я расширяю первый элемент, который должен быть выбран Node.
Любые идеи/предложение Пожалуйста,
К сожалению, как я уверен, вы обнаружили, что вы не можете установить свойство treeViewInstance.SelectedItem
как это только для чтения.
В памяти каждый TreeViewItem
имеет свойство IsSelected
, которое вы можете установить. Вы пытаетесь прослушать разворот/сбой элементов и, возможно, установить это свойство. Не пытаясь этого сама, я не знаю, является ли это хорошим решением b) если оно даже работает.
Чтобы получить TreeViewItem
, который является контейнером для элемента в коллекции, используйте
treeViewInstance.ItemContainerGenerator.ContainerFromItem(yourDataItem) as TreeViewItem;
Другая идея (как я это сделаю) - использовать ListBox/ListView и подделывать иерархическое представление. Создайте контроллер модели и элемент представления, оберните свои данные и выполните все это самостоятельно. Если вам нужна дополнительная информация, оставьте комментарий, и я выкопаю несколько примеров, чтобы помочь.
НТН,
Dennis
Есть два apporches, которые выбирают то, что вам нравится. i) исследуйте ItemTemplageSelector, не уверен, но может быть возможно сделать с ним работу.
В другом случае на событие расширения дерева или событие захвата мыши получите текущий корень node, а затем выберите его первого дочернего элемента с индексом, таким как rootNode.child [0]... установите это как Selected True или Isfocused and perfom operation, который предназначен для нажатия на вас, вы заставите пользователя почувствовать, что он выбран.