在 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