私はHeaderedContentControl内のアイテムが私のものでないプロジェクトでどこから来たのかを調べようとしています。ここでは、コードがあります:DataContext = "{Binding}"とはどういう意味ですか?
<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"
/>
それでは、それを調べてみましょう:
- ContentTemplate属性は、アイテムがdesplayedされている方法を説明します。
- WorkspacesTemplateは{バインディング}それは
- は、だから私はHeaderedContentControlのDataContextのを見て(DataContextのHeaderedContentControlの)そのDataContextプロパティにバインドされています意味するのItemsSourceの属性を設定しますが、それは同様に... を「{バインディング}」と記載されています
それはどういう意味ですか?
です。私は「ほとんどの場合」に興味を持っています。いつ冗長ではないのですか? – Grhm
それは自分自身です。私はかなり冗長ですが、コンバーターや更新トリガーなどを組み込んでバインディングの動作を変更すると有効なユースケースがあります。 –
最も一般的なのは、コントロールのDataContextをリセットすることですその親からオーバーライドされたDataContextを元の値に継承しています。 –