Я пытаюсь изменить шаблон управления в ListBoxItem, когда он выбран из списка. Чтобы сделать это, я собирался получить выбранный ListBoxItem из самого ListBox и установить для него шаблон управления. Как мне это сделать? Я попытался, SelectedItem и возвращает связанный объект в ListBoxItem.
Получить ListBoxItem в ListBox
Ответ 1
Вы можете извлечь контейнер элемента из связанного элемента с помощью ItemContainerGenerator
:
object selectedItem = listBox.SelectedItem;
ListBoxItem selectedListBoxItem = listBox.ItemContainerGenerator.ContainerFromItem(selectedItem) as ListBoxItem;
Ответ 2
Теперь вы можете сделать это с помощью этого:
ListBoxItem container = listBox.ContainerFromIndex(listBox.SelectedIndex) as ListBoxItem;
Теперь функция ItemContainerGenerator.ContainerFromItem()
кажется устаревшей.
Если вы установили шаблон элемента для ListBox, вы можете получить его из
UIElement item= container.ContentTemplateRoot;