Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 我可以在DataTemplate中使用DataTemplateSelector吗?_Wpf_Xaml_Datatemplate_Datatemplateselector - Fatal编程技术网

Wpf 我可以在DataTemplate中使用DataTemplateSelector吗?

Wpf 我可以在DataTemplate中使用DataTemplateSelector吗?,wpf,xaml,datatemplate,datatemplateselector,Wpf,Xaml,Datatemplate,Datatemplateselector,我有一个ItemsControl,它使用StackPanel显示项目列表 我希望为每一行显示一个标签,但标签左侧的内容由DataTemplateSelector定义。我不想为TemplateSelector生成的每个DataTemplate重新定义标签 这可能吗 <ItemsControl ItemsSource="{Binding Path=Values}" > <ItemsControl.Resources> <v:MyTemplateSelector

我有一个ItemsControl,它使用StackPanel显示项目列表

我希望为每一行显示一个标签,但标签左侧的内容由DataTemplateSelector定义。我不想为TemplateSelector生成的每个DataTemplate重新定义标签

这可能吗

<ItemsControl ItemsSource="{Binding Path=Values}" >
 <ItemsControl.Resources>
   <v:MyTemplateSelector x:Key="myTemplateSelector"></v:MyTemplateSelector>
 </ItemsControl.Resources>
 <ItemsControl.ItemsPanel>
  <ItemsPanelTemplate>
   <StackPanel></StackPanel>
  </ItemsPanelTemplate>
 </ItemsControl.ItemsPanel>
 <ItemsControl.ItemTemplate>
  <DataTemplate>
   <WrapPanel>
    <Label>Test: </Label>
    <!--What goes here should be defined by myTemplateSelector-->
   </WrapPanel>
  </DataTemplate>
 </ItemsControl.ItemTemplate>
</ItemsControl>

测试:

我想出来了。解决方案是使用具有ContentTemplateSelector属性的ContentPresenter元素:

    <DataTemplate>
       <WrapPanel>
          <Label>Test: </Label>
          <ContentPresenter 
              ContentTemplateSelector="{StaticResource ResourceKey=myTemplateSelector}">
          </ContentPresenter>
       </WrapPanel>
    </DataTemplate>

测试: