具有DataContext Self和ViewModel的窗口

3
在一个wpf窗口中,我使用DataContext="{Binding RelativeSource={RelativeSource Self}}",这样我就可以将其绑定到一个UserControl上,例如:UserControl="{Binding ElementName=Information}"
当我删除DataContext行时,ElementName的绑定也能正常工作。 另外,当我设置另一个DataContext时,比如this.DataContext = new MainViewModel();,它也能正常工作。
那么,在没有使用DataContext的情况下,ElementName是如何进行绑定的呢?
1个回答

4
当使用ElementName时,Binding.Source值会隐式设置为它所指向的对象。这是一种可以在不设置DataContext的情况下进行Bind的方式。来自MSDN上Binding.ElementName Property页面的描述:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接