2

假设我在一个窗口中有一个名为 Graph 的用户控件。此用户控件包含一个网格,其中还有另一个用户控件,称为 Toolbar。现在 Graph 公开了一个名为 Mode 的公共属性,它使用一个名为 ModeProperty 的依赖属性作为后备存储。我希望 Toolbar 用户控件中的元素绑定到其祖先 Graph 中的 Mode 属性。我怎样才能做到这一点?即使只是获得对 Graph 的引用也被证明比我预期的要困难,this.parent 获得对网格而不是 Graph 的引用。

4

1 回答 1

7

您只能像这样在 xaml 中绑定它 -

<Toolbar Mode="{Binding Path=Mode, RelativeSource={RelativeSource
      Mode=FindAncestor, AncestorType = UserControl, AncestorLevel =2}}"/>

您也可以像这样在绑定中使用 ElementName -

<Toolbar Mode="{Binding Path=Mode, ElementName=GraphUserControl}"/>

您必须在要绑定到的 userControl 上设置 x:Name 属性 -

<UserControl x:Name="GraphUserControl"></UserControl>

或者,如果您不想在代码后面做,您可以查看这篇有用的帖子,了解前往祖先父级 - Visual Tree Navigator

于 2012-07-19T14:24:20.717 回答