Kann ich einen DataTePlateSelector in einer DataTemplate verwenden?
-
14-10-2019 - |
Frage
Ich habe ein ItemsControl mit einem Stackpanel, um eine Liste von Elementen anzuzeigen.
Ich möchte, dass ein Etikett für jede Zeile angezeigt wird, aber für den Inhalt links vom Etikett, der von einem DataTeMplatesSelector definiert wird. Ich möchte das Etikett für jede vom Vorlagenseleger generierte DataTemplate nicht neu definieren.
Ist das möglich?
<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>
Lösung
Ich habe es herausgefunden. Die Lösung bestand darin, ein ContentPresenter -Element mit einem ContentTemPlateSelector -Attribut zu verwenden:
<DataTemplate>
<WrapPanel>
<Label>Test: </Label>
<ContentPresenter
ContentTemplateSelector="{StaticResource ResourceKey=myTemplateSelector}">
</ContentPresenter>
</WrapPanel>
</DataTemplate>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow