2012-05-17 50 views
2

我想綁定到一個屬性,而在XAML'屬性設置'內。在這個位置綁定似乎不會發生在與「正常」位置綁定相同的層次結構中。有誰知道如何綁定那裏?在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> 

相關信息:從FrameworkElementBackspaceHideAction繼承並呼籲目標依賴屬性(如MyType實際上是相同的)。我還需要在BackspaceHideAction中訪問此Target - 它並不一定是DP屬性。

MyType.PopupActions是MyType上的依賴項屬性,聲明爲PopupActionList : List<PopupAction>

我目前假設我無法綁定的原因是我嵌套在屬性實例中。類似的綁定已經在其他地方起作用了(只是上面的一行),所以綁定的類型不應該成爲問題。只是上下文。

+3

你誰低估並投票結束 - 爲什麼?它會幫助我改進問題(除非你發現它是如此應受譴責以至於無法迴避) – Max

回答

2

做了一點進一步的測試,我發現它爲什麼不起作用。

MyType上的依賴項屬性PopupActions被宣佈爲PopupActionList - 沒有什麼奇特的。但是屬性不會自動進入WPF元素的類DOM結構中,這並不令人驚訝(在您解釋之後,一如既往)。

但是,通過一些添加的代碼將每個單獨的PopupAction作爲項目調用MyType.AddLogicalChild,一切正常! (到目前爲止)