'正在尝试创建 w 主窗口,它将有一个包含多个项目的选项卡控件(每个项目仅按需显示)......假设我们有我想要的 A 类型项目、B 类型项目和 C 类型项目(使用 MVVM 模式) 拥有一个可观察的对象集合,这些对象代表我的 tabitems 并且与我的 userscontrols 相关(每个 tabitem 都是一个 usercontrol)...问题是我不知道该怎么做。
我有一个 tabItemViewModelBase 类:
public class TabItemViewModelBase : ViewModelBase
{
//Fields :
RelayCommand _closeCommand;
//Constructor:
public TabViewModel(string header)
{
this.Header = header;
}
}
在我的主窗口数据上下文中,我有一个此类的可观察集合:
//Propriétés
ObservableCollection<TabViewModel> _tabItems;
在我的 MainWindow 中,我有 TabControl 项的以下标记
<TabControl Padding="0" ItemsSource="{Binding Path=Workspaces}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
**<view:ClientView/>**
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
但正如您所见,所有项目都附加到 ClientView 用户控件,并且我正在使用 tabviewitem 来创建我的项目,我需要一个属性或一种方法来为 observablecollection 的每个元素指定内容表单...
(我有一个 ClientListingViewModel 类和 ClientCreationViewModel 类),我不能同时使用它们,因为我不知道如何为它们中的每一个指定视图!
谢谢!