Puis-je utiliser un DataTemplateSelector dans un DataTemplate?
-
14-10-2019 - |
Question
J'ai un ItemsControl en utilisant un StackPanel pour afficher une liste d'éléments.
Je voudrais une étiquette apparaître pour chaque ligne, mais pour le contenu à gauche de l'étiquette à définir par un DataTemplateSelector. Je ne veux pas de redéfinir l'étiquette pour chaque DataTemplate généré par le TemplateSelector.
Est-ce possible?
<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>
La solution
Je compris. La solution consistait à utiliser un élément de ContentPresenter avec un attribut ContentTemplateSelector:
<DataTemplate>
<WrapPanel>
<Label>Test: </Label>
<ContentPresenter
ContentTemplateSelector="{StaticResource ResourceKey=myTemplateSelector}">
</ContentPresenter>
</WrapPanel>
</DataTemplate>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow