2010-12-31 26 views
5

Tôi có một ItemsControl sử dụng một StackPanel để hiển thị một danh sách các mục.Tôi có thể sử dụng DataTemplateSelector trong DataTemplate không?

Tôi muốn một nhãn xuất hiện cho mỗi hàng, nhưng đối với nội dung ở bên trái nhãn sẽ được xác định bởi DataTemplateSelector. Tôi không muốn xác định lại nhãn cho mỗi DataTemplate được tạo bởi TemplateSelector.

Điều này có khả thi không?

<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> 

Trả lời

6

Tôi đã tìm ra. Giải pháp là sử dụng phần tử ContentPresenter với thuộc tính ContentTemplateSelector:

<DataTemplate> 
     <WrapPanel> 
      <Label>Test: </Label> 
      <ContentPresenter 
       ContentTemplateSelector="{StaticResource ResourceKey=myTemplateSelector}"> 
      </ContentPresenter> 
     </WrapPanel> 
    </DataTemplate> 
Các vấn đề liên quan