从子自定义控件的控件模板绑定到父用户控件的代码隐藏中定义的属性

时间:2014-07-16 12:35:10

标签: c# wpf wpf-controls

我有一个父UserControl(ParentUserControl),它包含一个子CustomControl(ChildCustomControl)。在我的子自定义控件的控件模板中,我想绑定到代码隐藏文件ParentUserControl.xaml.cs中定义的属性。如果可以这样做,那将是什么语法?

3 个答案:

答案 0 :(得分:1)

您可以使用其名称轻松引用父控件。在这种情况下,Xaml将如下所示:

<ParentUserControl Name="ParentControl">
  <ChildUserControl>
    <ChildUserControl.Template>
      <ControlTemplate TargetType="{x:Type ChildUserControl}">
        <Grid Background={Binding Path=Background, ElementName=ParentControl}>
...

答案 1 :(得分:0)

是的,您可以使用以下绑定将chid控件的控件模板中的属性与父控件的属性绑定:

PropertyName = "{Binding 
        Source={RelativeSource Mode=FindAncestor, 
        AncestorType=ParentUserControl},
    Path=ParentPropertyName}"

此处PropertyName将是子控件的控件模板中的属性,ParentUserControl将是您的父用户控件名称,ParentPropertyName将是父控件的属性。

答案 2 :(得分:0)

TemplateBinding一样正常...例如{TemplateBinding propName}