2010-12-31 8 views
5

StackPanelを使用してアイテムのリストを表示するItemsControlがあります。DataTemplate内でDataTemplateSelectorを使用できますか?

各行にラベルが表示されますが、ラベルの左側の内容は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> 

答えて

6

私はそれを理解しました。ソリューションは、ContentTemplateSelector属性を持つContentPresenter要素を使用することでした。

<DataTemplate> 
     <WrapPanel> 
      <Label>Test: </Label> 
      <ContentPresenter 
       ContentTemplateSelector="{StaticResource ResourceKey=myTemplateSelector}"> 
      </ContentPresenter> 
     </WrapPanel> 
    </DataTemplate> 
関連する問題