WPF:是否可以使用数据模板和控件模板?

时间:2010-11-11 10:21:35

标签: wpf datatemplate controltemplate

我目前正致力于设计一个TabControl,并且有一个奇怪的想法:

如果我想为我的应用程序中的所有选项卡设置默认的ControlTemplate,但为每个TabControl指定不同的DataTemplate(取决于我想要显示的数据),该怎么办?

你怎么看?你知道是否有解决方案吗?

也许我采取了错误的方式......

感谢您的想法: - )

2 个答案:

答案 0 :(得分:1)

您无法为TabControl指定DataTemplate,为TabControl的所有TabItem中 显示的数据指定DataTemplate。

答案 1 :(得分:0)

我找到了办法! 实际上,TabControl的ItemContainerStyle属性提供了三个模板:

  1. HeaderTemplate,是每个项目标题的数据模板
  2. ContentTemplate,是每个项目内容的数据模板
  3. 模板,可以是控件模板,也是我正在使用的模板!
  4. 我是这样做的(风格):

    <Style x:Key="MyTabItemStyle" TargetType="{x:Type TabItem}">
        <Setter Property="Template"  
                Value="{StaticResource ControlTemplate}"/>
        <Setter Property="Header" Value="{Binding}"/>
        <Setter Property="HeaderTemplate"  
                Value="{StaticResource HeaderTemplate}"/>
        <Setter Property="Content" Value="{Binding}"/>
        <Setter Property="ContentTemplate"  
                Value="{StaticResource ContentTemplate}"/>
    </Style>
    

    并将其链接到TabControl:

    <TabControl ItemsSource="{Binding Elements}" 
                SelectedIndex="{Binding SelectedIndex}"
                ItemContainerStyle="{DynamicResource MyTabItemStyle}">
    

    你怎么看?

相关问题