在 WPF 中,TabControl 可以直接将 ItemsSource 绑定数据源,见
将 TabControl 绑定到数据的示例
http://msdn.microsoft.com/zh-cn/library/aa972130(VS.90).aspx
<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>
匪疑所思的是,TabControl.ItemTeplate 居然是用于 Header, ContentTemplate 才是用于 TabItem。
但是在 Silverlight 中貌似无此功能, TabControl.ContentTemplate 属性也不存在。
作为从 ItemsControl 中派生的类,Silverlight 中的 TabControl.ItemsSource 貌似要求为 IEnumerable<TabItem>,
太垃圾了!!!!!!!!!!!
重写代码在文件中。CustomTabControlForSL 里面的TestTabControl 和TestTabItem