两个DataTemplates有没有办法共享一些元素?

时间:2010-09-08 09:05:56

标签: wpf xaml datatemplate

像DataTemplates扩展或继承的模板或基础DataTemplate之类的东西,所以我不必复制XAML。

2 个答案:

答案 0 :(得分:0)

UserControls怎么样?创建一个基本UserControl,然后扩展第二个?

<DataTemplate>
  <local:MyBase />
</DataTemplate>

并像这样扩展它?

<DataTemplate>
  <local:MyBase />
  <local:SomeOtherStuff />
</DateTemplate>

答案 1 :(得分:0)

您可以嵌套DataTemplates。这是一个例子

<DataTemplate x:Key="InnerTemplate">
    <TextBlock Text="{Binding}" Foreground="Purple" />
</DataTemplate>

<DataTemplate x:Key="OuterTemplate">
    <StackPanel>
        <TextBlock Text="Header" Foreground="Red" />
        <ContentPresenter Content="{Binding}" ContentTemplate="{StaticResource InnerTemplate}" />
    </StackPanel>
</DataTemplate>

在这种情况下,我只有一个列表绑定到列表框,其itemtemplate设置为OuterTemplate模板。

<ListBox x:Name="_lbTest" Grid.Row="1" ItemTemplate="{StaticResource OuterTemplate}" ></ListBox>