如何将HeaderTemplateProperty应用于CustomControl中的HeaderProperty?

问题描述 投票:0回答:1

MyCustomControl中,我创建了HederHeaderTemplate依赖项属性。

    public static readonly DependencyProperty HeaderProperty =
           DependencyProperty.Register(
                   "Header",
                   typeof(object),
                   typeof(MyCustomControl),
                   new FrameworkPropertyMetadata(
                           (object)null,
                           new PropertyChangedCallback(OnHeaderChanged)));


    public static readonly DependencyProperty HeaderTemplateProperty =
     DependencyProperty.Register(
             "HeaderTemplate",
             typeof(DataTemplate),
             typeof(MyCustomControl),
             new FrameworkPropertyMetadata(
                     (DataTemplate)null,
                     new PropertyChangedCallback(OnHeaderTemplateChanged)));

    private static void OnHeaderTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        // ???;
    }

我不明白要为HeaderTemplate申请Header我必须写些什么。我认为它需要写在这里OnHeaderTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e),但是究竟是什么?

<Style TargetType="{x:Type local:MyCustomControl}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:MyCustomControl}">
                    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                        <ContentPresenter ContentSource="Header"/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
c# wpf custom-controls dependency-properties
1个回答
0
投票

您可能会将其绑定在控件模板中,可能就像这样:

<ContentPresenter 
    ContentSource="Header"
    ContentTemplate="{TemplateBinding HeaderTemplate}"
    />
© www.soinside.com 2019 - 2024. All rights reserved.