Search code examples
c#wpftabcontrol

Add extra items when using ItemsSource


In the project I am building I have a TabControl in which I want to display a range of tabs through an ItemsSource. I also need to have a few "overview" tabs at the beginning of the TabControl, that cannot be located in ItemsSource.

What is the best way to achieve this, the only way I can think of is to have my overview tabs in my XAML and to just add tab items manually through code instead of using ItemSource is this the best way to go about it.


Solution

  • You can use CompositeCollection (MSDN) to accomplish this:

    <Window.Resources>
       <CollectionViewSource x:Key="ExistingTabs" Source="{Binding ExistingTabs}"/>
    </Window.Resources>
    <TabControl>
        <TabControl.ItemsSource>
            <CompositeCollection>
                 <TabItem>SpecialItem</TabItem>
                 <CollectionContainer Collection="{Binding Source={StaticResource ExistingTabs}}"/>
             </CompositeCollection>
        </TabControl.ItemsSource>
    </TabControl>