我学习了不同的教程和例子,它们向我展示了不同类型的绑定,但我不知道什么时候使用一种,什么时候使用另一种。
例如,有时我只看到:
Binding="{Binding}"有时(我理解如何使用它)在设置DataContext之后
Binding="{Binding Propriety1}"在DevExpress GridControl中,我看到:
Binding="{Binding Data.ProprietyName}"还有其他的。
我们能否在短期内解释清楚为何会有如此不同的个案?我在网上搜索过,但是教程只说明绑定是什么(我知道是什么),还有一个简单的例子,比如我写的第三个例子。
提前谢谢你。
发布于 2014-04-27 13:42:52
K以下是你所要求的简单解释:
Binding="{Binding}"这就是绑定DataContext对象本身的时候。因此,无论当前作用域中的DataContext是什么,绑定都是绑定的内容。也可以编写为Binding="{Binding .}"。
下一步:
Binding="{Binding Propriety1}"在这里,您将Propriety1绑定到当前DataContext中。这个和{Binding DataContext.Propriety1, RelativeSource={RelativeSource Self}}" />一样
最后:
Binding="{Binding Data.ProprietyName}"这里您将绑定ProprietyName,它属于Data,它是在当前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>属性和Data对象的类可以在MainViewModel.cs中找到
https://stackoverflow.com/questions/23323285
复制相似问题