Tengo un TabControl con un par de TabItems estáticos. Ahora estoy tratando de agregar dinámicamente algunas pestañas con ItemTemplate y ContentTemplate personalizados.
Algo como esto:
<TabControl ItemsSource="{Binding DynamicTabs}"> <TabItem Header="Static 1">Content 1</TabItem> <TabItem Header="Static2">Content 2</TabItem> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Header}" /> </DataTemplate> </TabControl.ItemTemplate> <TabControl.ContentTemplate> <DataTemplate> <TextBlock Text="{Binding Content}" /> </DataTemplate> </TabControl.ContentTemplate> </TabControl>¿Hay alguna manera de lograr esto?
Puede usar CompositeCollection para combinar sus diferentes fuentes:
<TabControl> <TabControl.Resources> <CollectionViewSource x:Key="DynamicTabsCollectionVS" Source="{Binding DynamicTabs}"/> </TabControl.Resources> <TabControl.ItemsSource> <CompositeCollection> <TabItem Header="Static 1">Content 1</TabItem> <TabItem Header="Static 2">Content 2</TabItem> <CollectionContainer Collection="{Binding Source={StaticResource DynamicTabsCollectionVS}}" /> </CompositeCollection> </TabControl.ItemsSource> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Header}" /> </DataTemplate> </TabControl.ItemTemplate> <TabControl.ContentTemplate> <DataTemplate> <TextBlock Text="{Binding Content}" /> </DataTemplate> </TabControl.ContentTemplate> </TabControl>