我试图在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>
。
我目前假设我无法绑定的原因是我嵌套在属性实例化中。类似的绑定在别处起作用(只是上面的那一行),所以绑定的类型不应该是问题。只是背景。
答案 0 :(得分:2)
进行一些进一步的测试,我发现了为什么它不起作用。
PopupActions
上的依赖项属性MyType
被声明为PopupActionList
- 没什么特别的。但是属性不会自动进入WPF元素的'DOM'结构中,这并不令人惊讶(在您一如既往地弄明白之后)。
但是,使用一些添加的代码以每个单独的PopupAction作为项目调用MyType.AddLogicalChild
,一切正常! (到目前为止)