2012-06-13 5 views
2

Понятно, что если вы хотите, чтобы получить контейнер из элемента в ListBox вы можете использовать:Как получить связанные данные с помощью контейнера?

ListBoxItem lbi1 = (ListBoxItem)(listBox.ItemContainerGenerator.ContainerFromIndex(0)); 

(Источник: http://bea.stollnitz.com/blog/?p=7)

Предполагая выше ListBox был привязан к списку, как могу ли я сделать наоборот? Как и в, что, если я хотел бы получить данные данных в списке с помощью контейнера (lbi1 в приведенном выше примере)?

+1

Хорошо, я думаю, что я нашел ответ :) Для элементов ListBox или других подобных ContentControls данные могут быть получены следующим образом: Данные класса = (класс) lbi1.Content; Для других элементов управления, таких как TreeViewItems, поскольку они не являются ContentControls, данные могут быть получены путем доступа к DataContext: Данные класса = (класс) treeViewItem.DataContext; – SalGad

ответ

1

Хорошо, я думаю, что я нашел ответ :)

Для элементов ListBox или другие подобные ContentControls данные могут извлекаться что-то вроде:

Class data = (Class)lbi1.Content; 

Для других элементов управления, как TreeViewItems, так как они не являются ContentControls, данные могут быть получены путем доступа к DataContext:

Class data = (Class)treeViewItem.DataContext; 
Смежные вопросы