Как я могу получить Контейнер для объекта в WPF ItemsControl.
Я пишу многоэлементное дерево с привязываемыми свойствами SelectedItem и SelectedItems. Пока все работает просто отлично. Единственное, когда я нажимаю на элемент в дереве с нажатой клавишей Ctrl второй раз, этот элемент должен быть выбран не последним, а последним выбранным элементом. TreeView содержит закрытый метод ChangeSelection. Насколько я понимаю, первым параметром является Контейнер, вторым является TreeViewItem и последний, в зависимости от того, будет ли выбран элемент или нет.
Я реализую множественный выбор с перехватом события SelectedItemChanged.
Этот код работает для нового выбранного элемента
private void OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
var view = ItemContainerGenerator.ContainerFromItem(e.NewValue) as TreeViewItem;
// ...
}
НО, если я хочу получить TreeViewItem из элемента, сохраненного в ObservableCollection ... он не будет работать.
РЕДАКТИРОВАТЬ: Хорошо, как я узнал. Код выше работает только для предметов первого уровня ...