首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WPF中{Binding}、{Binding Data.XXX}、{Binding Path=XXX}和其他

在WPF中{Binding}、{Binding Data.XXX}、{Binding Path=XXX}和其他
EN

Stack Overflow用户
提问于 2014-04-27 12:17:42
回答 1查看 584关注 0票数 1

我学习了不同的教程和例子,它们向我展示了不同类型的绑定,但我不知道什么时候使用一种,什么时候使用另一种。

例如,有时我只看到:

代码语言:javascript
复制
Binding="{Binding}"

有时(我理解如何使用它)在设置DataContext之后

代码语言:javascript
复制
Binding="{Binding Propriety1}"

在DevExpress GridControl中,我看到:

代码语言:javascript
复制
Binding="{Binding Data.ProprietyName}"

还有其他的。

我们能否在短期内解释清楚为何会有如此不同的个案?我在网上搜索过,但是教程只说明绑定是什么(我知道是什么),还有一个简单的例子,比如我写的第三个例子。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-27 13:42:52

K以下是你所要求的简单解释:

代码语言:javascript
复制
Binding="{Binding}"

这就是绑定DataContext对象本身的时候。因此,无论当前作用域中的DataContext是什么,绑定都是绑定的内容。也可以编写为Binding="{Binding .}"

下一步:

代码语言:javascript
复制
Binding="{Binding Propriety1}"

在这里,您将Propriety1绑定到当前DataContext中。这个和{Binding DataContext.Propriety1, RelativeSource={RelativeSource Self}}" />一样

最后:

代码语言:javascript
复制
Binding="{Binding Data.ProprietyName}"

这里您将绑定ProprietyName,它属于Data,它是在当前DataContext中声明的属性

所有这些都如本例所示:下载连结

代码语言:javascript
复制
<StackPanel x:Name="LayoutRoot">
  <TextBlock DataContext="{Binding TestStringOne}"
              Text="{Binding}" />
  <TextBlock DataContext="{Binding TestStringOne}"
              Text="{Binding .}" />
  <TextBlock Text="{Binding TestStringTwo}" />
  <TextBlock Text="{Binding Data.TestStringThree}" />
</StackPanel>

属性和Data对象的类可以在MainViewModel.cs中找到

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23323285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档