반응형
TabControl에 ItemsSource을 바인딩처리하여 MVVM 패턴을 적용할때, content는 바인딩하기는 쉬운데 스타일은 그대로 두고 Header의 이름만 바인딩 시키고 싶을 수 있다.
방법은 아래와 같다.
<TabControl TabStripPlacement="Top"
ItemsSource="{Binding Tab}">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Header}"/>
<Setter Property="DataContext" Value="{Binding DataContext}"/>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
public class TabViewModel
{
public string Header { get; set; }
public object DataContext { get; set; }
}
public MainWindowViewModel()
{
Tab = new ObservableCollection<TabViewModel>();
Tab.Add(new TabViewModel { Header = "Test 1", DataContent = new ViewModel() });
Tab.Add(new TabViewModel { Header = "Test 2", DataContent = new ViewModel() });
Tab.Add(new TabViewModel { Header = "Test 3", DataContent = new ViewModel() });
}
이런식으로 바인딩해주면된다.
반응형
'프로그래밍 > WPF' 카테고리의 다른 글
[WPF] MouseWheel Delta Binding (0) | 2022.08.22 |
---|---|
[WPF] Usercontrol 사용 시, 디자이너 Exception 문제 (0) | 2022.08.04 |
[WPF] MouseBinding KeyBinding Binding (0) | 2022.08.03 |
[WPF] TreeView MVVM IsSelected & IsExpanded Binding (0) | 2022.08.03 |
[WPF] DispatcherUnhandledException (0) | 2022.06.22 |