Wpf 每个类都有更改的ControlTemplate

Wpf 每个类都有更改的ControlTemplate,wpf,Wpf,我有以下ControlTemplate,它与我的所有CustomControls相同 然后我用了一种风格: 但我希望ContentControl“InnerContent”在每个类中都更改其模板 例如 ???? 如何实现这一点?拥有类型为DataTemplate的单独属性,并将其绑定到InnerContent public DataTemplate InnerContentTemplate { get { return (DataTemplate)GetVal

我有以下ControlTemplate,它与我的所有CustomControls相同


然后我用了一种风格:


但我希望ContentControl“InnerContent”在每个类中都更改其模板

例如


????

如何实现这一点?

拥有类型为
DataTemplate
的单独属性,并将其绑定到
InnerContent

public DataTemplate InnerContentTemplate
    {
        get { return (DataTemplate)GetValue(InnerContentTemplateProperty); }
        set { SetValue(InnerContentTemplateProperty, value); }
    }

    // Using a DependencyProperty as the backing store for InnerContentTemplate.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty InnerContentTemplateProperty =
        DependencyProperty.Register("InnerContentTemplate", typeof(DataTemplate), typeof(PssFunctionControlSlider), new UIPropertyMetadata(null));
模板将其绑定到基础模板中

<ControlTemplate x:Key="PssFunctionControlBaseHorizontal" TargetType="local:PssFunctionControlBase">
<Grid>
    <Border BorderThickness="1">
        <ContentControl x:Name="InnerContent" Template="{StaticResource InnerContentBaseHorizontal}" ContentTemplate="{TemplatedBinding InnerContentTemplate}"/>
    </Border>
    <Control x:Name="PART_ResizeDecorator" Visibility="Collapsed"
             Template="{StaticResource ResizeDecoratorTemplate}" />
</Grid>
<ControlTemplate.Triggers>
    <DataTrigger Value="True"
                 Binding="{Binding EditModeEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:PssViewLayoutControl}}}">
        <Setter TargetName="PART_ResizeDecorator" Property="Visibility" Value="Visible" />
    </DataTrigger>
</ControlTemplate.Triggers>

谁走了?谢谢你问。我已将所有绑定更改为RelativeSource Findanchester,现在它可以工作了。
<Style TargetType="{x:Type local:PssFunctionControlSlider}" BasedOn="{StaticResource BaseStyle}">
     <Setter Property="InnerContentTemplate" Value="Your Template" />
</Style>