2010-12-31 14 views
5

मैं एक ItemsControl मदों की एक सूची प्रदर्शित करने के लिए एक StackPanel का उपयोग कर सकते है।मैं एक DataTemplate के भीतर एक DataTemplateSelector का उपयोग कर सकते हैं?

मैं एक लेबल प्रत्येक पंक्ति के लिए प्रदर्शित करना चाहते हैं, लेकिन लेबल के बाईं ओर सामग्री के लिए एक DataTemplateSelector द्वारा परिभाषित किया जाना है। मैं टेम्पलेट चयनकर्ता द्वारा उत्पन्न प्रत्येक डेटा टेम्पलेट के लिए लेबल को फिर से परिभाषित नहीं करना चाहता हूं।

क्या यह संभव है?

<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 विशेषता के साथ करना था:

<DataTemplate> 
     <WrapPanel> 
      <Label>Test: </Label> 
      <ContentPresenter 
       ContentTemplateSelector="{StaticResource ResourceKey=myTemplateSelector}"> 
      </ContentPresenter> 
     </WrapPanel> 
    </DataTemplate> 
संबंधित मुद्दे

 संबंधित मुद्दे