绑定首选项:名称还是类型?

时间:2010-11-30 23:17:24

标签: wpf binding

知道MyControl有一个depProp。 PX1,我应该具备什么约束力,line1line2

<UserControl x:Class="MyProject.MyControl"
             xmlns:my="clr-namespace:MyProject"

             x:Name="ParentControl">

    <Canvas>
        <Line x:Name="line1" 
              X1="{Binding RelativeSource={RelativeSource AncestorType={x:Type my:MyControl}}, Path=PX1}" />

        <Line x:Name="line2" 
              X1="{Binding ElementName=ParentControl, Path=PX1}" />

    </Canvas>
</UserControl>

我的意思是,在第二种情况下,我们是否应确保所有可能的父母姓名 “ParentControl” 的唯一性?

1 个答案:

答案 0 :(得分:3)

在大多数情况下,我更喜欢后一种语法,因为只要为ParentControl选择一个明确的名称,它就更容易阅读意图。缺点是,如果更改名称,则会失败,而第一个将继续有效。

备注:PX1实际上不需要是DP,只要UserControl实现INotifyPropertyChanged并在PX1更改时通知。