Silverlight问题:如何找到与ListBox中的项对应的DataTemplate

时间:2010-05-08 19:10:18

标签: silverlight

我有两个班A& B和列表框。我将listBox.ItemsSource指定为类型A的对象集合。使用silverlight数据模板可视化列表框项,例如,请参阅http://msdn.microsoft.com/en-us/library/system.windows.datatemplate.aspxhttp://www.codeproject.com/KB/WPF/UserControlAsDataTemplate.aspx。 listbox.ItemTemplate是一个DataTemplate,它使用类B来可视化列表框项。现在,在我的代码隐藏中,在B类的任何方法中,如果我这样做.DataContext,它指向一个类型为A的对象。因此,给定一个B类型的对象,我可以找到类型A的相应对象。到现在为止还挺好。我的问题是,给定类型A的对象,我如何导航到类型B的相应对象?这在SL中是否可能?

1 个答案:

答案 0 :(得分:1)

从表面上看,你应该可以使用这样的代码: -

  ListBoxItem item = (ListBoxItem)myListBox.ItemContainerGenerator.ContainerFromItem(myTypeA);
  MyTypeB typeB = (MyTypeB)item.Content;

然而,这可能并不适用于所有情况。无法保证ListBox甚至为ItemsSource中的每个对象生成了一个ListBoxItem。