C# WPF从列表框中获取项作为ItemTemplate的类型

C# WPF从列表框中获取项作为ItemTemplate的类型,c#,wpf,xaml,listbox,itemtemplate,C#,Wpf,Xaml,Listbox,Itemtemplate,我有一个这样的列表框: xmlns:local=“clr命名空间:MyGui.Controls” 这可能吗?这在某种程度上是可能的,大多数情况下,虚拟化会阻碍对所有项目执行此操作。在这种情况下,不建议您访问ItemTemplate中的控件或容器上的任何内容,您应该将其绑定到模板本身或ItemContainerStyle中。您尝试过吗?如果是这样的话,你发布的代码有问题吗?我开始重新设计我的代码,因为,当我再向前走3步时,我意识到我没有什么可以绑定的。然而,这个解决方案确实解决了我最初的问题。@

我有一个这样的列表框:

xmlns:local=“clr命名空间:MyGui.Controls”

这可能吗?

这在某种程度上是可能的,大多数情况下,虚拟化会阻碍对所有项目执行此操作。在这种情况下,不建议您访问
ItemTemplate
中的控件或容器上的任何内容,您应该将其绑定到模板本身或
ItemContainerStyle

中。您尝试过吗?如果是这样的话,你发布的代码有问题吗?我开始重新设计我的代码,因为,当我再向前走3步时,我意识到我没有什么可以绑定的。然而,这个解决方案确实解决了我最初的问题。@Shane:听起来像个问题,还是说这解决了最初的问题?
<ListBox Grid.Row="1" ItemsSource="{Binding MyData}" x:Name="MyDataContainer">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <local:DataDisplay />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
foreach (var row in MyDataContainer.Items)
    if (row != null)
    {
        var tmp = MyDataContainer.ItemContainerGenerator.ContainerFromItem(row);
        if (tmp is ListBoxItem)
        {
            return (tmp as ListBoxItem).PROPERTY_I_WANT as DataDisplay;
        }
     }