{Binding}, {Binding Data.XXX}, {Binding Path=XXX} 和 WPF 中的其他

本文关键字:Binding XXX 其他 WPF Path Data | 更新日期: 2023-09-27 18:00:34

我遵循了不同的教程和示例,他们向我展示了这些不同类型的绑定,但我无法理解何时使用一个以及何时使用另一个。

例如,有时我只看到:

Binding="{Binding}"

有时(我了解如何使用它(在设置DataContext后:

Binding="{Binding Propriety1}"

在DevExpress GridControl中,我看到:

Binding="{Binding Data.ProprietyName}"

等。
能否简要解释清楚为什么如此不同的情况?我在网上搜索了一下,但教程只说了什么是绑定(我知道什么是绑定(和一个简单的例子,比如我写的第三个。

提前谢谢你。

{Binding}, {Binding Data.XXX}, {Binding Path=XXX} 和 WPF 中的其他

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

Binding="{Binding}"

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

下一个:

Binding="{Binding Propriety1}"

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

最后:

Binding="{Binding Data.ProprietyName}"

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

本例中显示了所有这些内容: 下载链接

<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对象的类