Привязка предпочтений: имя или тип? - PullRequest
1 голос
/ 01 декабря 2010

зная, что 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" для всех возможных родителей во втором случае?

1 Ответ

3 голосов
/ 01 декабря 2010

Я бы предпочел последний синтаксис в большинстве случаев, так как легче читать намерение, если вы выбираете чистое имя для ParentControl. Недостатком является то, что это не удастся, если вы измените имя, тогда как первый будет продолжать работать.

Примечание: на самом деле PX1 не обязательно должен быть DP, если UserControl реализует INotifyPropertyChanged и уведомляет об изменении PX1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...