2009-11-14 45 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

相关问题