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






Bind a TabControl to a data source

Bind a TabControl to a data source
     

<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

   
    
    
    
    
  








Related examples in the same category

1.TabPanel with TabControlTabPanel with TabControl
2.Display Content in a Multitabbed User InterfaceDisplay Content in a Multitabbed User Interface
3.Tab Controls and TabItemTab Controls and TabItem
4.Use a GroupBox control to create a container for a TabControl.Use a GroupBox control to create a container for a TabControl.