知道MyControl
有一个depProp。 PX1
,我应该具备什么约束力,line1
或line2
?
<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” 的唯一性?
答案 0 :(得分:3)
在大多数情况下,我更喜欢后一种语法,因为只要为ParentControl选择一个明确的名称,它就更容易阅读意图。缺点是,如果更改名称,则会失败,而第一个将继续有效。
备注:PX1实际上不需要是DP,只要UserControl实现INotifyPropertyChanged并在PX1更改时通知。