Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

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