C# 绑定到XAML属性声明中的父级?
我试图在XAML“属性设置器”中绑定到属性。此位置的绑定似乎与“正常”位置的绑定不在同一层次结构中。有人知道怎么在那里绑东西吗 我还尝试使用RelativeSource获取父对象(这更好,因为这是我真正想要做的,而不是复制它),但没有骰子C# 绑定到XAML属性声明中的父级?,c#,wpf,xaml,C#,Wpf,Xaml,我试图在XAML“属性设置器”中绑定到属性。此位置的绑定似乎与“正常”位置的绑定不在同一层次结构中。有人知道怎么在那里绑东西吗 我还尝试使用RelativeSource获取父对象(这更好,因为这是我真正想要做的,而不是复制它),但没有骰子 <loc:MyType Target="{Binding ElementName=Editor, Path=TextArea, Converter={loc:EditorAdapterConverter}}"> <loc:MyType
<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
相同)。我还需要在BackspaceHideAction
中访问此目标
——它实际上也不必是DP属性
MyType.PopupActions
是MyType上的一个依赖属性,声明为PopupActionList:List
我目前假设无法绑定的原因是我嵌套在属性实例化中。其他地方也有类似的绑定(就在上面一行),所以绑定的类型应该不是问题。只是上下文。通过进一步的测试,我发现了它为什么不起作用
MyType
上的依赖项属性PopupActions
被声明为PopupActionList
——没有什么特别之处。但是属性不会自动输入到WPF元素的类似于“DOM”的结构中,这一点也不奇怪(在您弄清楚之后,一如既往)
但是,通过添加一些代码来调用
MyType.AddLogicalChild
,并将每个单独的弹出操作作为项目,一切都正常!(到目前为止)你们是谁投了反对票,又是谁投了接近票——为什么?这将有助于我改进这个问题(除非你觉得它应该受到谴责,使它变得不可挽回)