我有这种情况,我有一个列表视图(用户控件)和详细视图(用户控件)。当用户单击列表中的项目时,将显示详细视图以及相应的数据。
在我的主窗口中,我使用数据模板和内容控制器来设置CurrentViewModel以选择菜单项。
数据模板
<DataTemplate DataType="{x:Type viewModels:EquipmentListViewModel}">
<equipment:EquipmentListView />
</DataTemplate>
菜单项
<MenuItem Header="_List / Update" Command="{Binding NavCommand}" CommandParameter="equipList"></MenuItem>
内容控制:
<ContentControl Content="{Binding CurrentViewModel}" />
设置当前视图模型:
case "equipList":
CurrentViewModel = (EquipmentListViewModel)EquipmentListViewModel;
break;
当用户选择列表项时,发布事件:
_eventAggregator.GetEvent<OpenEquipmentDetailViewEvent>()
.Publish(_selectedEquipment.EquipmentId);
然后详细视图模型会收听:
_eventAggregator.GetEvent<OpenEquipmentDetailViewEvent>()
.Subscribe(OnOpenEquipmentDetailView);
问题是一次只能将一个视图模型设置为当前视图模型,而我首先需要列表视图模型来呈现列表,然后需要详细视图模型来呈现所选列表项的详细信息。我尝试创建详细视图的实例并使用数据上下文在列表视图中绑定详细视图模型,但它没有将详细视图的UI元素绑定到视图模型中的属性。
主窗口的主视图模型创建所有视图模型的实例。
当我在列表中选择项目时,如何正确显示视图模型的详细视图?