2010-08-24 39 views
11

Tôi đang cố gắng thay đổi mẫu Điều khiển trên một ListBoxItem khi nó được chọn từ ListBox. Để làm như vậy, tôi sẽ lấy ListBoxItem được chọn từ chính ListBox, và thiết lập mẫu điều khiển trên đó. Tôi sẽ đi đâu để tới đó? Tôi đã thử, SelectedItem và trả về đối tượng bị ràng buộc trong ListBoxItem.Lấy ListBoxItem trong một ListBox

Trả lời

20

Bạn có thể lấy các container hàng từ mục bị ràng buộc bằng ItemContainerGenerator:

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

Bây giờ bạn có thể làm điều đó với điều này:

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

Chức năng ItemContainerGenerator.ContainerFromItem() có vẻ như obsolete bây giờ.

Nếu bạn đã thiết lập các mục Template cho ListBox sau đó bạn có thể lấy nó từ

UIElement item= container.ContentTemplateRoot; 
Các vấn đề liên quan