【问题标题】:WPF : Is it possible to use a data template and a control template?WPF:是否可以使用数据模板和控件模板?
【发布时间】:2010-11-11 10:21:34
【问题描述】:

我目前正在设计 TabControl 的样式,并且有一个奇怪的想法:

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

你怎么看?不知道有没有办法解决这个问题?

也许我走错路了……

感谢您的想法:-)

【问题讨论】:

    标签: wpf datatemplate controltemplate


    【解决方案1】:

    您不能为 TabControl 指定 DataTemplate 您为在 您的 TabControl 的所有 TabItems 中显示的数据指定 DataTemplate。

    【讨论】:

    • 嗨 Bitbonk,我实际上使用 TabControl 的 ItemContainerStyle 属性来设置“HeaderTemplate”和“ContentTemplate”(两者都是 DataTemplate)(参见:stackoverflow.com/questions/1965355/…,第一个答案),我我想为他们添加一个 ControlTemplate。
    【解决方案2】:

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

    1. HeaderTemplate,每个item的表头数据模板
    2. ContentTemplate,每个item内容的数据模板
    3. 模板,可以是控制模板,我现在用的就是这个!

    这是我的做法(风格):

    <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}">
    

    你怎么看?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      相关资源
      最近更新 更多