所以我试图在标签控件中使用不同的视图。它可以是具有相同类型的视图模型的许多选项卡,但它们都具有不同的数据。
我根据视图模型类型选择视图:
<TabControl Grid.Column="1" Grid.Row="1" Grid.RowSpan="4" ItemsSource="{Binding OpenTabs}">
<style>
a lot of style code....
</style>
<DataTemplate DataType="{x:Type designView:TestcaseViewModel}">
<Views:DesignView/>
</DataTemplate>
<DataTemplate DataType="{x:Type returnView:ReturnViewModel}">
<Views:ReturnView/>
</DataTemplate>
</TabControl.Resources>
</TabControl>
为了测试代码,我在构造函数中添加了几个不同的viewmodel:
public MainWindow()
{
this.InitializeComponent();
_projectViewModel = new ProjectViewModel();
LayoutRoot.DataContext = _projectViewModel;
_projectViewModel.OpenTabs.Add(new TestcaseViewModel("test"));
_projectViewModel.OpenTabs.Add(new TestcaseViewModel("My second test"));
_projectViewModel.OpenTabs.Add(new TestcaseViewModel("Another test"));
}
我现在看到三个不同的标签(带有不同的标题)并且它们有效。除了它们都显示相同的数据,如果我改变其中一个数据,它会发生在所有其他数据上。所以我猜所有的观点共享相同的视图模型或什么?当我点击新标签页时,该选项卡中的视图也使用相应的视图模型?