I can get data into my TabControl but the headers have frames around them and I can’t slick from tab to tab.
What am I doing wrong with the XAML binding syntax on this TabControl?
XAML:
<StackPanel> <TabControl x:Name='TheTabControl'> <TabControl.ItemTemplate> <DataTemplate> <TabItem Header='{Binding LastName}'> <StackPanel Margin='10' Orientation='Horizontal'> <TextBlock Text='{Binding FirstName}'/> <TextBlock Text=' '/> <TextBlock Text='{Binding LastName}'/> </StackPanel> </TabItem> </DataTemplate> </TabControl.ItemTemplate> </TabControl> <TabControl> <TabItem Header='Tab1'> <TextBlock Text='This is a test of tab 1'/> </TabItem> <TabItem Header='Tab2'> <TextBlock Text='This is a test of tab 2'/> </TabItem> </TabControl> </StackPanel>
code behind:
public partial class Window1 : Window { public Window1() { InitializeComponent(); //create all List<Customer> customers = new List<Customer>(); customers.Add(new Customer { FirstName = 'Jim', LastName = 'Smith', NumberOfContracts = 23 }); customers.Add(new Customer { FirstName = 'Jane', LastName = 'Smith', NumberOfContracts = 23 }); customers.Add(new Customer { FirstName = 'John', LastName = 'Tester', NumberOfContracts = 23 }); //show TheListBox.ItemsSource = customers; } } public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public int NumberOfContracts { get; set; } }
just bind your List to your TabControl as ItemsSource, e.g.
this will give you a tab for each object in customer.