2

我试图在 XAML 的“属性设置器”中绑定到一个属性。在此位置的绑定似乎与在“正常”位置绑定的层次结构不同。有谁知道如何在那里绑定东西?

我也尝试过使用 RelativeSource 来获取父级(这更好,因为这是我真正想要做的,而不是复制它)但没有骰子。

<loc:MyType Target="{Binding ElementName=Editor, Path=TextArea, Converter={loc:EditorAdapterConverter}}">
    <loc:MyType.PopupActions>
        <loc:BackspaceHideAction Target="{Binding ElementName=Editor, Path=TextArea, Converter={loc:EditorAdapterConverter}}" /> //Binding doesn't work
        <loc:KeyAction Action="Show" Key="Space" Modifiers="LeftCtrl" />
        <loc:KeyAction Action="Hide" Key="Escape" />
    </loc:MyType.PopupActions>
</loc:MyType>

相关信息:BackspaceHideAction继承自FrameworkElement并具有一个名为 Target 的依赖属性(实际上与 相同MyType)。Target我也需要访问BackspaceHideAction它——它也不一定是 DP 属性。

MyType.PopupActions是 MyType 上的一个依赖属性,声明为PopupActionList : List<PopupAction>.

我目前假设我无法绑定的原因是我嵌套在属性实例化中。类似的绑定在其他地方也有效(就在上面的那一行),所以绑定的类型不应该是问题。只是上下文。

4

1 回答 1

2

做了一些进一步的测试,我发现了为什么它不起作用。

PopupActionson的依赖属性MyType被声明为PopupActionList- 没什么特别的。但是属性不会自动输入到 WPF 元素的类似“DOM”的结构中,这并不奇怪(在你弄清楚之后,一如既往)。

但是,通过添加一些代码来调用MyType.AddLogicalChild每个单独的 PopupAction 作为项目,一切正常!(至今)

于 2012-05-18T10:55:20.190 回答