2009-11-14 4 views
0

코드 숨김 클래스에 다음 코드 줄이 있습니다.TabControl을 XAML의 ObservableCollection에 바인딩하는 방법

TabControl.ItemsSource = ((MainWindowViewModel)DataContext).TabItemViewModels; 

이 파일을 XAML 파일로 옮기고 싶습니다. 간단히

,

  • 메인 창을 나타내는 MainWindow를 클래스가있다.
  • 주 창에는 TabControl이 있습니다.
  • MainWindowViewModel 및 TabItemViewModel이라는 두 가지보기 모델이 있습니다.
  • MainWindowViewModel에는 관찰 가능한 TabItemViewModel 클래스 모음이 있습니다.
  • MainWindowViewModel은 기본 창의보기 모델 클래스입니다.
  • TabItemViewModel은 주 창에서 TabControl의 각 탭에 대한보기 모델 클래스입니다.
  • MainWindow 클래스의 DataContext 속성은 XAML에서 인스턴스화 된 MainWindowViewModel 클래스의 인스턴스로 설정됩니다.

내가 원하는 것은 MainWindowViewModel 클래스의 TabItemViewModels 속성을 TabControl의 ItemSources 속성에 바인딩하는 것입니다.

코드 줄뿐만 아니라 Bindings 구문에 대한 일부 포인터를 찾고 있는데, 완전히 잃어 버렸고 XAML로 작업하는 것이 매우 중요해 보입니다. 당신이 찾고하지 않는 코드 줄

답변

0

첫째 :

<TabControl ItemsSource="{Binding TabItemViewModels}" ... />

어떻게 바인딩의 구문에이 넥타이? Source, ElementName 또는 RelativeSource가없는 바인딩은 자동으로 DataContext를 참조합니다. 귀하의 경우 MainWindow.DataContext는 TabItemViewModels 속성이있는 MainWindowViewModel입니다. (DataContext는 시각적 트리 아래로 전달되므로 TabControl은 포함 된 MainWindow와 동일한 DataContext를 상속받습니다.) 따라서이 속성은 이름으로 참조 할 수 있습니다.

자세한 내용과 구문은 MSDN에서 Data Binding Overview, Binding Sources OverviewBinding Declarations Overview을 참조하십시오.

관련 문제