在wpf窗口中我使用DataContext="{Binding RelativeSource={RelativeSource Self}}"
以便我可以绑定例如到UserControl UserControl="{Binding ElementName=Information}"
。
当我删除DataContext行时,绑定到ElementName也有效
当我设置另一个DataContext时,例如this.DataContext = new MainViewModel();
它有效。
如果不使用DataContext,那么如何通过ElementName进行绑定?
答案 0 :(得分:4)
使用ElementName
时,Binding.Source
值会隐式设置为它引用的对象。这是我们可以Bind
而不是设置DataContext
的一种方式。来自MSDN上的Binding.ElementName Property页:
默认情况下,绑定会继承DataContext属性指定的数据上下文(如果已设置)。但是,ElementName属性是您可以显式设置Binding的源并覆盖继承的数据上下文的方法之一。