WPF中的TabControl也是繼承與ItemsControl,因此也同ListBox一樣支援清單控制項的資料繫結。
比如最簡單的直接設定TabControl的ItemsSource屬性。
tabControl.ItemsSource = Enumerable.Range(1, 10);
結果是TabControl中每一個TabItem的Header和Content都是一樣的:
如果要單獨設定TabItem的Header屬性的資料範本,則需要設定TabControl的ItemTemplate屬性:
<TabControl Name="tabControl">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Foreground="Red" Text="{Binding}"/>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
結果:
如果要單獨設定TabItem的Content屬性的資料範本,則需要設定TabControl的ContentTemplate屬性:
<TabControl Name="tabControl">
<TabControl.ContentTemplate>
<DataTemplate>
<Button Content="{Binding}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
結果:
TabControl還有一個SelectedContent屬性,代表選中的資料對象(或者XAML中定義的TabItem.Content)。這裡注意,TabControl繼承與Selector類型,因此TabControl還有SelectedItem屬性,兩個屬性也都是以來屬性。區別在於:SelectedItem在SelectionChanged事件發生前就被設定,而SelectedContent屬性是在SelectionChanged事件發生後才會被設定的。