Bind a TabControl to a data source : TabControl « Windows Presentation Foundation « VB.Net Tutorial






<Window x:Class="TabControlUsingItemTemplate.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:src="clr-namespace:TabControlUsingItemTemplate"
    Title="TabControlUsingItemTemplate" Height="300" Width="300">
  <Window.Resources>
    <ObjectDataProvider x:Key="TabListResource" ObjectType="{x:Type src:TabList}" />
    <DataTemplate x:Key="HeaderTemplate">
      <TextBlock Text="{Binding Path=Header}" />
    </DataTemplate>
    <DataTemplate x:Key="ContentTemplate">
      <TextBlock Text="{Binding Path=Content}" />
    </DataTemplate>
  </Window.Resources>

  <DockPanel>
    <TabControl ItemsSource="{Binding Source={StaticResource TabListResource}}"
                  ItemTemplate="{StaticResource HeaderTemplate}"
                  ContentTemplate="{StaticResource ContentTemplate}"/>

  </DockPanel>

</Window>
//File:Window.xaml.vb
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Shapes
Imports System.Collections.ObjectModel
Namespace TabControlUsingItemTemplate
  Public Partial Class Window1
    Inherits System.Windows.Window
    Public Sub New()
      InitializeComponent()
    End Sub
  End Class
  Public Class TabItemData
    Private _header As String
    Private _content As String

    Public Sub New(header As String, content As String)
      _header = header
      _content = content
    End Sub
    Public ReadOnly Property Header() As String
      Get
        Return _header
      End Get
    End Property
    Public ReadOnly Property Content() As String
      Get
        Return _content
      End Get
    End Property
  End Class
  Public Class TabList
    Inherits ObservableCollection(Of TabItemData)
    Public Sub New()
      MyBase.New()

      Add(New TabItemData("Header 1", "Content 1"))
      Add(New TabItemData("Header 2", "Content 2"))

      Add(New TabItemData("Header 3", "Content 3"))
    End Sub
  End Class
End Namespace
WPF Bind A Tab Control To A Data Source








16.47.TabControl
16.47.1.TabPanel with TabControlTabPanel with TabControl
16.47.2.Display Content in a Multitabbed User InterfaceDisplay Content in a Multitabbed User Interface
16.47.3.Tab Controls and TabItemTab Controls and TabItem
16.47.4.Bind a TabControl to a data sourceBind a TabControl to a data source
16.47.5.Use a GroupBox control to create a container for a TabControl.Use a GroupBox control to create a container for a TabControl.