为了账号安全,请及时绑定邮箱和手机立即绑定

什么是DataContext?

什么是DataContext?

什么是DataContext?作为将DataContext与WPF中的另一个属性链接的问题的延续。在研究的最后,我非常惊讶地发现当一个人写这样的东西时:<Label Content="{Binding Path=Name}" />在DataContext其对Content性能的绑定是的Label控制本身!它仍然有效的事实是由于最近父级的DataContext值的默认继承。但是,如果您将此标签包装在自定义控件中,并且您不希望将数据绑定到该DataContext控件的属性,那么您可能更喜欢:<Controls:SearchSettings Settings="{Binding Path=Settings}" />你在这里。现在,你需要设置Settings为DataContext为SearchSettings控制,对Label内部绑定反对,但你不能,因为这会触发重新绑定的Settings属性。我看不到在使用不同来源的混合绑定属性点:DataContext通过ElementName等,那么,为什么我会永远使用DataContext?
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

来自CodeProject的kishore Gaddam:

DataContext是数据绑定中最基本的概念之一。Binding对象需要从某个地方获取数据,并且有几种方法可以指定数据源,例如直接在Binding中使用Source属性DataContext,在树中遍历时从最近的元素继承a ,设置ElementNameRelativeSource属性在Binding对象中。

有关CodeProject的详细示例:http//www.codeproject.com/Articles/321899/DataContext-in-WPF


查看完整回答
反对 回复 2019-07-24
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

在那种特殊情况下,您可以这样做:

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

假设您希望SearchSettings可能包含的所有内容都使用“设置”作为其数据上下文。基本上,DataContext会影响元素本身以及任何未明确覆盖它的后代。


查看完整回答
反对 回复 2019-07-24
  • 3 回答
  • 0 关注
  • 1154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信