5

我正在查看是否可以将用户控件或窗口的当前实例绑定到其 xaml 中定义的附加属性,例如:

<Window MyAttachedProp.Value="{Binding Self}"/>
4

2 回答 2

4

你想要MyAttachedProp.Value对象Window引用吗?

您可以使用以下任何一种方法:

  1. {Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}

  2. 给你的窗口一个 x:Name="XXXXX"... 然后用{Binding ElementName=XXXXX}它来找到它。

  3. {Binding RelativeSource={RelativeSource Self}}

  4. {Binding RelativeSource={x:Static RelativeSource.Self}}

在示例 4 中,它避免了创建新RelativeSource对象(Mode设置为Self)...而是指向已在RelativeSource类中创建的静态对象...。(这是一个非常小的和过早的优化)。

大多数人使用示例 3,因为它的输入更少且阅读更清晰。

于 2012-08-25T14:46:17.660 回答
1

{Binding RelativeSource={RelativeSource Self}}

于 2012-08-25T14:46:05.730 回答