2 using System
.Collections
.Generic
;
5 using System
.Windows
.Controls
;
6 using System
.Windows
.Data
;
7 using System
.Windows
.Documents
;
8 using System
.Windows
.Input
;
9 using System
.Windows
.Media
;
10 using System
.Windows
.Media
.Imaging
;
11 using System
.Windows
.Shapes
;
14 namespace TabControlContentTemplateSelector
17 /// Interaction logic for Window1.xaml
20 public partial class Window1
: System
.Windows
.Window
25 InitializeComponent();
28 void infoBtn_Click(object sender
, RoutedEventArgs e
)
30 if (tabCtrl1
.SelectedContent
is Person
)
32 Person selectedPerson
= tabCtrl1
.SelectedContent
as Person
;
33 StringBuilder personInfo
= new StringBuilder();
35 personInfo
.Append(selectedPerson
.FirstName
);
36 personInfo
.Append(" ");
37 personInfo
.Append(selectedPerson
.LastName
);
38 personInfo
.Append(", ");
39 personInfo
.Append(selectedPerson
.HomeTown
);
40 MessageBox
.Show(personInfo
.ToString());
46 public class PersonTemplateSelector
: DataTemplateSelector
48 public override DataTemplate
SelectTemplate(object item
, DependencyObject container
)
51 // The content of each TabItem is a Person object.
54 Person person
= item
as Person
;
56 Window win
= Application
.Current
.MainWindow
;
58 // Select one of the DataTemplate objects, based on the
59 // person's home town.
60 if (person
.HomeTown
== "Seattle")
62 return win
.FindResource("SeattleTemplate") as DataTemplate
;
66 return win
.FindResource("DetailTemplate") as DataTemplate
;