我有两个班A& B和列表框。我将listBox.ItemsSource指定为类型A的对象集合。使用silverlight数据模板可视化列表框项,例如,请参阅http://msdn.microsoft.com/en-us/library/system.windows.datatemplate.aspx和http://www.codeproject.com/KB/WPF/UserControlAsDataTemplate.aspx。 listbox.ItemTemplate是一个DataTemplate,它使用类B来可视化列表框项。现在,在我的代码隐藏中,在B类的任何方法中,如果我这样做.DataContext,它指向一个类型为A的对象。因此,给定一个B类型的对象,我可以找到类型A的相应对象。到现在为止还挺好。我的问题是,给定类型A的对象,我如何导航到类型B的相应对象?这在SL中是否可能?
答案 0 :(得分:1)
从表面上看,你应该可以使用这样的代码: -
ListBoxItem item = (ListBoxItem)myListBox.ItemContainerGenerator.ContainerFromItem(myTypeA);
MyTypeB typeB = (MyTypeB)item.Content;
然而,这可能并不适用于所有情况。无法保证ListBox甚至为ItemsSource
中的每个对象生成了一个ListBoxItem。