2009-11-14 49 views
0

我的代碼隱藏類中有以下代碼行。如何將TabControl綁定到XAML中的ObservableCollection中

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

我想將其移至XAML文件。

簡言之,

  • 有表示主窗口一個MainWindow類。
  • 在主窗口上放置了一個TabControl。
  • 有2個稱爲MainWindowViewModel和TabItemViewModel的視圖模型。
  • MainWindowViewModel有一個可觀察的TabItemViewModel類的集合。
  • MainWindowViewModel是主窗口的視圖模型類。
  • TabItemViewModel是主窗口上TabControl中每個單獨選項卡的視圖模型類。
  • MainWindow類的DataContext屬性設置爲MainWindowViewModel類的一個實例,在XAML中實例化。

我想要做的是將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 OverviewBinding Sources OverviewBinding Declarations Overview

相關問題