绑定到UserControl中的元素

时间:2008-11-21 02:45:12

标签: wpf xaml binding user-controls actualwidth

假设我有一个类似下面的用户控件,如何将某些东西绑定到控件外部的“G1”网格的ActualWidth

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

2 个答案:

答案 0 :(得分:1)

如果要绑定到使用此用户控件的外部控件,请在您的UserControl代码后面声明DependencyProperty,然后将G1绑定到该属性。 并将外部控件的属性绑定到UserControl的DependencyProperty。 它就像一个2级的间接。

答案 1 :(得分:1)

如果您的意思是在控件之外,而不是控件的内容,您可以在Binding中使用ElementName,如下所示:

{Binding ElementName=G1, Path=ActualWidth}

如果你的意思是在另一个Xaml文件中的控件之外,那么如果你的控件在另一个控件的范围内,你可以尝试使用Path属性:

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

但是我会反对这个设计,因为你可能会改变G1的名称,并且你永远不会知道任何可能会破坏的绑定。