具有DataContext Self和ViewModel的窗口

时间:2013-10-28 16:32:50

标签: wpf datacontext

在wpf窗口中我使用DataContext="{Binding RelativeSource={RelativeSource Self}}"以便我可以绑定例如到UserControl UserControl="{Binding ElementName=Information}"

当我删除DataContext行时,绑定到ElementName也有效 当我设置另一个DataContext时,例如this.DataContext = new MainViewModel();它有效。

如果不使用DataContext,那么如何通过ElementName进行绑定?

1 个答案:

答案 0 :(得分:4)

使用ElementName时,Binding.Source值会隐式设置为它引用的对象。这是我们可以Bind 而不是设置DataContext的一种方式。来自MSDN上的Binding.ElementName Property页:

  

默认情况下,绑定会继承DataContext属性指定的数据上下文(如果已设置)。但是,ElementName属性是您可以显式设置Binding的源并覆盖继承的数据上下文的方法之一。