0

我的代码隐藏类中有以下代码行。

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 非常重要。

4

1 回答 1

0

首先是您不需要的代码行:

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

这与绑定的语法有何关联?没有 Source、ElementName 或 RelativeSource 的绑定会自动引用 DataContext。在您的情况下, MainWindow.DataContext 是具有 TabItemViewModels 属性的 MainWindowViewModel。(DataContext 沿可视树向下传播,因此 TabControl 继承了与包含 MainWindow 相同的 DataContext。)因此您可以通过名称引用该属性。

有关详细信息和语法,请参阅MSDN 中的数据绑定概述绑定源概述绑定声明概述

于 2009-11-14T02:13:11.150 回答