Привязка к элементу внутри UserControl - PullRequest
1 голос
/ 21 ноября 2008

Скажем, у меня есть пользовательский элемент управления, подобный представленному ниже, как бы я связал что-то с ActualWidth сетки "G1" снаружи элемента управления?

<UserControl x:Class="Blah">
  <WrapPanel>
    <Grid x:Name="G1">
      ...
    </Grid>
    <Grid>
      ...
    </Grid>
  </WrapPanel>
</UserControl>

Ответы [ 2 ]

1 голос
/ 21 ноября 2008

Если вы имеете в виду вне элемента управления, а не как Контент элемента управления, вы можете использовать ElementName в привязке следующим образом:

{Binding ElementName=G1, Path=ActualWidth}

Если вы имеете в виду вне элемента управления в другом файле Xaml, то вы можете попробовать использовать свойство Path, если ваш элемент управления находится в области действия другого элемента управления:

{Binding ElementName=ParentControl, Path=G1.ActualWidth}

Однако я бы посоветовал против этого дизайна, потому что вы можете изменить имя G1 однажды, и вы никогда не узнаете ни о каких привязках, которые могут сломаться.

1 голос
/ 21 ноября 2008

Если вы хотите привязать к внешнему элементу управления, где вы используете этот пользовательский элемент управления, объявите DependencyProperty в вашем коде UserControl, а затем привяжите G1 к этому свойству. И свяжите свойство внешнего элемента управления с DependencyProperty UserControl. Это как 2 уровня косвенности.

...