我正在查看是否可以将用户控件或窗口的当前实例绑定到其 xaml 中定义的附加属性,例如:
<Window MyAttachedProp.Value="{Binding Self}"/>
你想要MyAttachedProp.Value
对象Window
引用吗?
您可以使用以下任何一种方法:
{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}
给你的窗口一个 x:Name="XXXXX"... 然后用{Binding ElementName=XXXXX}
它来找到它。
{Binding RelativeSource={RelativeSource Self}}
{Binding RelativeSource={x:Static RelativeSource.Self}}
在示例 4 中,它避免了创建新RelativeSource
对象(Mode
设置为Self
)...而是指向已在RelativeSource
类中创建的静态对象...。(这是一个非常小的和过早的优化)。
大多数人使用示例 3,因为它的输入更少且阅读更清晰。
{Binding RelativeSource={RelativeSource Self}}