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에 HeaderedContentControl의) 자사의 DataContext 속성에 바인딩 된 의미에 ItemsSource의 속성을 설정하지만 그것은뿐만 아니라 ... 을 "{바인딩}"로 설명되어 있습니다
그 의미는 무엇입니까?
입니다. "대부분의 경우"에 흥미가 있습니다. 중복되지 않는 경우는 언제입니까? – Grhm
그 자체로 나는 항상 중복 적이라고 확신한다. 그러나 변환기를 포함하고 트리거 등을 사용하여 바인딩 동작을 변경하면 유효한 유스 케이스가있다. –
가장 일반적인 용도는 컨트롤의 DataContext를 재설정하는 것이다 부모로부터 오버라이드 (override) 된 DataContext를 원래의 값으로 상속 한 메소드 –