2013-10-28 24 views
3

在wpf窗口中,我使用DataContext="{Binding RelativeSource={RelativeSource Self}}",以便我可以綁定例如到UserControl UserControl="{Binding ElementName=Information}"帶DataContext自我和ViewModel的窗口

當我刪除DataContext行時,Binding to ElementName也起作用。
另外,當我設置另一個DataContext例如this.DataContext = new MainViewModel();它的工作原理。

然後,如何通過ElementName在未使用DataContext的情況下進行綁定?

回答

4

當使用ElementName時,Binding.Source值被隱式設置爲它引用的對象。這是我們可以通過Bind而不是設置DataContext的一種方式。從Binding.ElementName Property頁面上MSDN:

默認情況下,綁定會繼承DataContext屬性指定的數據背景下,如果已設置。但是,ElementName屬性是您可以顯式設置Binding源並覆蓋繼承的數據上下文的方式之一。

相關問題