2013-08-29 1 views
0

WPF 창에 탭 컨트롤이 있습니다. TabControl의 항목 소스는 뷰 모델에서 ObservableCollection<UserControl>에 바인딩됩니다.wpf의 탭 컨트롤의 탭 항목 헤더

그럼 TabControl의 각 TabItem 탭 머리글을 어떻게 설정할 수 있습니까?

((TabItem)Tabcontrol.Item[0]).Header="Something" 

어떤 하나를 수행

가 해결책을 가지고 있습니다 : 내 탭 항목 유형부터

내가로 설정할 수없는 TabItem하지 UserControl 내이다?

TabControl은 다음과 같습니다

<TabControl Name="TabControl" Grid.Row="1" 
      ItemsSource="{Binding TabCollection}" 
      SelectedIndex="{Binding CurrentIndex}" /> 

답변

3

당신은 사용자 컨트롤에 Header라는 속성에 바인딩을 설정 각 TabItem의 스타일을 설정해야합니다. 이것을 시도하십시오 :

<Style TargetType="{x:Type TabItem}"> 
    <Setter Property="Header" Value="{Binding Header}"/> 
</Style> 

tabitem에 추가하는 각 컨트롤에는 Header 속성 호출이 필요합니다. 바인딩에 대해 인터페이스에 대해 을 선언 할 필요는 없습니다.

다음은 탭 컨트롤을 사용하는 전체 예제입니다.

<TabControl Name="TabControl" Grid.Row="1" ItemsSource="{Binding TabCollection}" SelectedIndex="{Binding CurrentIndex}" > 
     <TabControl.Resources> 
      <Style TargetType="{x:Type TabItem}"> 
       <Setter Property="Header" Value="{Binding Title}"/> 
      </Style> 
     </TabControl.Resources> 
</TabControl> 

스타일은 WPF에서 자동으로 적용됩니다.

+0

내 UI가 업데이트되지 않습니다. ............... ............. 내 사용자 정의 컨트롤의 뷰 모델을 어디에서 언급해야합니까? – WpfBegnner

+1

편도 또는 다른 방법으로 뷰 모델에서 데이터를 추출하려고합니다. viewmodel이 사용자 정의 컨트롤의 데이터 컨텍스트 인 경우 바인드를 변경하여 {Binding DataContext.Header} – Gusdor

+0

감사합니다. 지금은 작동 중입니다 ......... :) – WpfBegnner