我需要在wpf xaml中訪問父級的DataContext。整個xaml頁面代碼是動態的。所以不知道父母的類型。如何在父類型可以不同時訪問wpf中父類的DataContext?
我寫這
<Grid DataContext={Binding Path=.}>
這是正確的?
我需要在wpf xaml中訪問父級的DataContext。整個xaml頁面代碼是動態的。所以不知道父母的類型。如何在父類型可以不同時訪問wpf中父類的DataContext?
我寫這
<Grid DataContext={Binding Path=.}>
這是正確的?
請記住,如果DataContext
未明確設置,它將繼承其父項DataContext
。如果由於某種原因,這不起作用,您應該看看與RelativeSource
的綁定。
像這樣的東西可能會奏效:
<Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=DataContext}}"
鑑於Grid
具有Window
類型的祖先(我認爲所有的控制應該有)。
謝謝。默認情況下它起作用。只是想知道如果AncestorType不是父窗口,我設置綁定,如你所說,然後會發生什麼? – techfun
如果你指定'Window'的'AncestorType',並且元素沒有'Window'類型的祖先(我猜它永遠不會發生),綁定將不起作用。這與綁定到不存在的「路徑」時得到的行爲相同。再次,閱讀[RelativeSource MarkupExtension文檔](http://msdn.microsoft.com/en-us/library/ms743599.aspx),它會告訴你所有關於'AncestorType'和'AncestorLevel'的知識。 。 – khellang
嘗試一下 - 如果它的工作正確 – MikroDel
可能的重複:[WPF Databinding:如何訪問「父」數據上下文?](http://stackoverflow.com/questions/1127933/wpf-databinding-how- do-i-access-the-parent-data-context) – khellang