Получить ListBoxItem в ListBox

Я пытаюсь изменить шаблон управления в ListBoxItem, когда он выбран из списка. Чтобы сделать это, я собирался получить выбранный ListBoxItem из самого ListBox и установить для него шаблон управления. Как мне это сделать? Я попытался, SelectedItem и возвращает связанный объект в ListBoxItem.

Ответ 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;