我在TabControl
. 幸运的是,我在这篇 CodeProject 文章中找到了一些我认为可以解决我所有问题的东西。
但是,此解决方案引入了一个问题,那就是它破坏了我的HeaderTemplate
. 选项卡标题与内容控件具有相同的内容。
我的视图使用这样的 TabControl:
<TabControl
behaviors:TabItemGeneratorBehavior.ItemsSource="{Binding MyItems, Mode=OneWay}"
behaviors:TabItemGeneratorBehavior.SelectedItem="{Binding MySelectedItem, Mode=TwoWay}">
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<ContentPresenter>
<ContentPresenter.Content>
<TextBlock Text="{Binding Title}"/>
</ContentPresenter.Content>
</ContentPresenter>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
</TabControl>
来自behaviors:TabItemGeneratorBehavior
CodeProject 文章。里面TabItemGeneratorBehavior
是一个生成的方法TabItems
:
private void AddTabItem(object item)
{
var contentControl = new ContentControl();
var tab = new TabItem
{
DataContext = item,
Content = contentControl,
HeaderTemplate = _tabControl.ItemTemplate
};
contentControl.SetBinding(ContentControl.ContentProperty, new Binding());
tab.SetBinding(HeaderedContentControl.HeaderProperty, new Binding());
_tabControl.Items.Add(tab);
}
我认为我的问题在于为HeaderProperty
. 如何设置绑定以使其使用HeaderTemplate
上面 XAML 中定义的内容?