【问题标题】:{Binding}, {Binding Data.XXX}, {Binding Path=XXX} and others in WPFWPF 中的 {Binding}、{Binding Data.XXX}、{Binding Path=XXX} 等
【发布时间】:2014-04-27 12:17:42
【问题描述】:

我遵循了不同的教程和示例,他们向我展示了不同类型的绑定,但我不明白何时使用一种以及何时使用另一种。

例如,有时我看到的很简单:

Binding="{Binding}"

设置DataContext后有时(我明白如何使用它):

Binding="{Binding Propriety1}"

在 DevExpress GridControl 中我看到:

Binding="{Binding Data.ProprietyName}"

还有其他人。
有人可以简短地解释一下为什么会有如此不同的情况吗?我在网上搜索,但教程只说绑定是什么(我知道是什么)和一个简单的例子,比如我写的第三个。

提前谢谢你。

【问题讨论】:

标签: c# wpf binding


【解决方案1】:

这是您要求的简单解释:

Binding="{Binding}"

那是你绑定DataContext 对象本身的时候。所以无论在当前范围内的DataContext 是什么,绑定就是被绑定的内容。也可以写成Binding="{Binding .}"

下一步:

Binding="{Binding Propriety1}"

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

最后:

Binding="{Binding Data.ProprietyName}"

在这里,您绑定了属于DataProprietyName,这是在当前DataContext 中声明的属性

所有这些都显示在此示例中:Download Link

<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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2016-05-02
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多