我正在尝试找出HeaderedContentControl中的项目来自一个不属于我的项目。这是代码:
<HeaderedContentControl
Content="{Binding Path=Workspaces}"
ContentTemplate="{StaticResource WorkspacesTemplate}"
Header="Workspaces"
Style="{StaticResource MainHCCStyle}"
DataContext="{Binding}" // <--- this
/>
<DataTemplate x:Key="WorkspacesTemplate">
<TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="4"
/>
所以我们来看看它:
这是什么意思?
答案 0 :(得分:24)
如果没有看到更多的代码,很难确定,但DataContext="{Binding}"
通常是不必要的,因为当前绑定上下文中的任何对象都会自动将其DataContext
属性设置为等效于{Binding}
。
记住:
Property="{Binding}"
表示“将this.Property
设置为评估值this.DataContext
”Property="{Binding Path=SubProperty}"
表示“将this.Property
设置为评估值this.DataContext.SubProperty
”这意味着DataContext="{Binding}"
表示“将this.DataContext
设置为this.DataContext
的评估值”,这在多数情况下是多余的!
答案 1 :(得分:4)
{Binding}
类似于绑定'this'或当前数据上下文 - 从父级分配或继承。为了更好地理解,{Binding}
的等效值为{Binding .}
或{Binding Path=.}