2010-11-30 69 views
1

知道MyControl有deprop。 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」佔所有可能的父母在第二種情況下的獨特性?

回答

3

在大多數情況下,我更喜歡後者的語法,因爲它更容易閱讀意圖,只要您爲ParentControl選擇明確的名稱即可。不利的一面是,如果你改變了名字,這將失敗,而第一個將繼續工作。

側注意:只要UserControl實現INotifyPropertyChanged並在PX1更改時通知,PX1實際上不需要是DP。

+0

+1,這幾乎總結了:)我總是發現RelativeSource xaml語法有點長.. – 2010-11-30 23:31:59

相關問題