我有一个TabControl
,绑定到UserControls
(MyControls)列表
<TabControl Background="{x:Null}" x:Name="MyView" ItemsSource="{Binding MyControls}" >
我想将每个选项卡项目的标题绑定到每个UserControl
中的属性(标题)。我做了如下
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Title}"/>
</Style>
</TabControl.ItemContainerStyle>
但是,由于我重写了ItemContainerStyle
,因此我丢失了该应用程序的所有默认样式。我的标签页标题看起来与应用程序中的其他标签页标题不同
有什么方法可以只绑定标题而不更改任何样式?
答案 0 :(得分:2)
定义ItemTemplate
:
<TabControl Background="{x:Null}" x:Name="MyView" ItemsSource="{Binding MyControls}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
MyControls
不应返回IEnumerable<UserControl>
。它应该返回一个IEnumerable<YourObject>
,其中YourObject
是具有Title
属性以及任何其他属性的POCO类。然后,您应该使用DataTemplates
来定义YourObject
的外观。