[英]Bind a collection to a WPF TabControl with static TabItems
I have a TabControl
with a couple of static TabItems
.我有一个TabControl
和几个 static TabItems
。 I am now trying to dynamically add some tabs with a custom ItemTemplate
and ContentTemplate
.我现在正在尝试使用自定义ItemTemplate
和ContentTemplate
动态添加一些选项卡。
Something like this:像这样的东西:
<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>
Is there any way to achieve this?有什么办法可以做到这一点?
You can use the CompositeCollection to combine your different sources:您可以使用CompositeCollection组合您的不同来源:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.