2010-08-24 8 views
11

Ich versuche, die Control-Vorlage auf einem ListBoxItem zu ändern, wenn es aus der ListBox ausgewählt ist. Um dies zu tun, wollte ich das ausgewählte ListBoxItem aus der ListBox selbst holen und die Kontrollvorlage darauf setzen. Wie würde ich das machen? Ich habe versucht, SelectedItem und das gebundene Objekt innerhalb der ListBoxItem zurückgibt.Hol dir das ListBoxItem in einer ListBox

Antwort

20

Sie können den Artikel Behälter aus dem gebundenen Element abrufen, indem Sie die ItemContainerGenerator mit:

object selectedItem = listBox.SelectedItem; 
ListBoxItem selectedListBoxItem = listBox.ItemContainerGenerator.ContainerFromItem(selectedItem) as ListBoxItem; 
0

Jetzt können Sie es mit diesem tun:

ListBoxItem container = listBox.ContainerFromIndex(listBox.SelectedIndex) as ListBoxItem; 

Die ItemContainerGenerator.ContainerFromItem() Funktion scheint wie obsolete jetzt.

Wenn Sie die Elementvorlage für die List-Box festgelegt haben, dann können Sie es aus

bekommen
UIElement item= container.ContentTemplateRoot; 
Verwandte Themen