{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}"
等。
能否简要解释清楚为什么如此不同的情况?我在网上搜索了一下,但教程只说了什么是绑定(我知道什么是绑定(和一个简单的例子,比如我写的第三个。
提前谢谢你。
K 以下是您要求的简单解释:
Binding="{Binding}"
那是绑定DataContext
对象本身的时候。因此,无论当前范围内的DataContext
是什么,其中绑定就是要绑定的内容。也可以写成Binding="{Binding .}"
下一个:
Binding="{Binding Propriety1}"
在这里,您将Propriety1
绑定到当前DataContext
中。这个和{Binding DataContext.Propriety1, RelativeSource={RelativeSource Self}}" />
一样
最后:
Binding="{Binding Data.ProprietyName}"
在这里,您绑定了属于Data
的ProprietyName
,这是当前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
对象的类