请问什么是DataContext?

什么是DataContext?

作为将DataContext与WPF中的另一个属性链接的问题的延续。

在研究的最后,我非常惊讶地发现当一个人写这样的东西时:

<Label Content="{Binding Path=Name}" />

DataContext其对Content性能的绑定是的Label控制本身!它仍然有效的事实是由于最近父级的DataContext值的默认继承。

但是,如果您将此标签包装在自定义控件中,并且您不希望将数据绑定到该DataContext控件的属性,那么您可能更喜欢:

<Controls:SearchSettings Settings="{Binding Path=Settings}" />

你在这里。现在,你需要设置SettingsDataContextSearchSettings控制,对Label内部绑定反对,但你不能,因为这会触发重新绑定的Settings属性。

我看不到在使用不同来源的混合绑定属性点:DataContext通过ElementName等,那么,为什么我会永远使用DataContext


PIPIONE
浏览 1859回答 3
3回答

隔江千里

在那种特殊情况下,您可以这样做:<Controls:SearchSettings&nbsp;DataContext="{Binding&nbsp;Path=Settings}"&nbsp;Settings="{Binding}"&nbsp;/>假设您希望SearchSettings可能包含的所有内容都使用“设置”作为其数据上下文。基本上,DataContext会影响元素本身以及任何未明确覆盖它的后代。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB