绑定到模板生成的子元素

时间:2015-01-27 14:44:54

标签: .net wpf xaml binding datatemplate

我试图设置父控件属性单向绑定,以便它指向用作数据模板的可视树根的控件实例的附加属性:

<DataTemplate DataType="{x:Type myns:HostedObjectType}">
    <myns:ChildControl myns:AttachedBooleanProperty="False">
        <!-- put whatever you like here -->
    </myns:ChildControl>
</DataTemplate>

(...)

<DataTemplate DataType="{x:Type myns:OtherHostedObjectType}">
    <myns:OtherChildControl myns:AttachedBooleanProperty="True">
        <!-- put whatever you like here -->
    </myns:OtherChildControl>
</DataTemplate>

(...)
<myns:ParentControl
    Content="{Binding MyHostedObject}"
    SomeBooleanProperty="{Binding ???}"
/>

什么是绑定到该属性的适当方式,不需要任何类型的附加代码&#34;托管&#34;课程

(请注意,上面的例子是故意过分简化的)

1 个答案:

答案 0 :(得分:0)

要绑定到Control的附加属性,您必须使用PathElementName绑定:

<myns:ParentControl
    Content="{Binding MyHostedObject}"
    SomeBooleanProperty="{Binding Path=(myns:AttachedBooleanProperty), Mode=TwoWay, ElementName="childControlName"}"/>

另外,我建议反过来:使用TemplatedParent绑定从SomeBooleanProperty获取ChildControl