Caliburn.微型视图切换

本文关键字:视图 微型 Caliburn | 更新日期: 2023-09-27 18:19:58

在CM WPF应用程序中,我有以下项目:

<Window> <!-- Shell Window -->
 <ContentControl x:Name="MainRegion">
 <ContentControl x:Name="SearchRegion">
<Window>

视图:

MainRegionView
SearchRegionView

查看型号:

MainRegionViewModel //implements Conductor<Screen>
SearchRegionViewModel //implements Conductor<Screen>

我需要从MainRegionViewModel切换SearchRegionViewModel的视图。以下代码在MainRegionViewModel内部执行。

ViewModelTest test = new ViewModelTest();
//Calling the method from object reference
searchRegionViewModel.ActivateItem(test);

问题:视图未加载到SearchRegionView中。如何将视图加载到SearchRegion?

Caliburn.微型视图切换

您的MainRegionViewModel&SearchRegionView需要实现Screen,而您的ShellViewModel需要实现Conductor。之后,您需要在XAML(ShellView.XAML).中绑定ActiveItem

<ContentControl x:Name="ActiveItem"></ContentControl>

在ShellViewModel中使用Activate(YourViewModel)

以下是示例

如果您想更改MainRegionViewModel中的ActiveItem,您需要查看EventAggregator,将消息发布到ShellViewModel到Activate所需的ViewModel