Wpf 两个DataTemplates是否有共享某些元素的方法?

Wpf 两个DataTemplates是否有共享某些元素的方法?,wpf,xaml,datatemplate,Wpf,Xaml,Datatemplate,类似于模板或基本数据模板,这两个数据模板都扩展或继承,因此我不必复制XAML。UserControls呢?创建一个基本用户控件,然后扩展第二个 <DataTemplate> <local:MyBase /> </DataTemplate> 然后像这样扩展它 <DataTemplate> <local:MyBase /> <local:SomeOtherStuff /> </DateTemplate&g

类似于模板或基本数据模板,这两个数据模板都扩展或继承,因此我不必复制XAML。

UserControls呢?创建一个基本用户控件,然后扩展第二个

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

然后像这样扩展它

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

您可以嵌套数据模板。这里有一个例子

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

在本例中,我只是将一个列表绑定到一个listbox,并将其itemtemplate设置为OuterTemplate模板

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

我实际上更喜欢嵌套数据模板的想法,而不是将数据模板中的块提取到用户控件中。不幸的是,我想要共享的块是外部模板,所以在我的例子中,这种方法是不可能的。