假设我有一个像下面这样的用户控件,我如何ActualWidth
从控件外部将某些东西绑定到“G1”网格的?
<UserControl x:Class="Blah">
<WrapPanel>
<Grid x:Name="G1">
...
</Grid>
<Grid>
...
</Grid>
</WrapPanel>
</UserControl>
假设我有一个像下面这样的用户控件,我如何ActualWidth
从控件外部将某些东西绑定到“G1”网格的?
<UserControl x:Class="Blah">
<WrapPanel>
<Grid x:Name="G1">
...
</Grid>
<Grid>
...
</Grid>
</WrapPanel>
</UserControl>
如果您的意思是在控件之外,而不是作为控件的内容,则可以ElementName
在 Binding 中使用,如下所示:
{Binding ElementName=G1, Path=ActualWidth}
如果您的意思是在另一个 Xaml 文件中的控件之外,那么如果您的控件在另一个控件的范围内,则可以尝试使用 Path 属性:
{Binding ElementName=ParentControl, Path=G1.ActualWidth}
但是我建议不要使用这种设计,因为您可能有一天会更改 G1 的名称,并且您永远不会知道任何可能会破坏的绑定。
如果要绑定到使用此用户控件的外部控件,请DependencyProperty
在后面的 UserControl 代码中声明 a,然后将 G1 绑定到该属性。并将外部控件的属性绑定到 UserControl 的DependencyProperty
. 这就像一个 2 级间接。