Click here to Skip to main content
15,891,136 members
Articles / Desktop Programming / WPF
Tip/Trick

Dynamic TabControl - TabItems

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
15 Sep 2011CPOL 18.6K   4  
Dynamic TabItems
What we want to achieve is to dynamically insert TabItems, with dynamic header.
Plus at any one time, there may only be one TabItem, so we need to check if the tabControl contains the tabItem before creating.

MainWindow.xaml
C#
<Window x:Class="HomeWork.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:HomeWork.UserControls"
        Title="MainWindow" 
        Height="350" 
        Width="525">
    <DockPanel>
        
        <ListBox DockPanel.Dock="Left" Margin="5" MinWidth="120">
            <ListBoxItem x:Name="A1" Content="A1" MouseDoubleClick="NewTabItem" />
            <ListBoxItem x:Name="A2" Content="A2" MouseDoubleClick="NewTabItem" />
        </ListBox>

        <TabControl x:Name="placeholder" Margin="5">            
        </TabControl>        
      
    </DockPanel>
</Window>


MainWindow.cs
C#
public void NewTabItem(object sender, RoutedEventArgs e)
{
  ListBoxItem source = sender as ListBoxItem;
  if (source != null)
  {
    bool tabExists = false;
    foreach (var tabItem in this.placeholder.Items)
    {
       if ((tabItem as TabItem).Name == source.Name)
       {
         tabExists = true;
        }
     }
     if (tabExists == false)
     {
       this.placeholder.SelectedIndex =
           this.placeholder.Items.Add(new TabItem 
               { Header = source.Name, Name = source.Name });
     }
   }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Belgium Belgium
Developer within C#, Dynamics NAV (Navision), Php environments.

Comments and Discussions

 
-- There are no messages in this forum --