Navigation Caliburn.Micro中的导航-如何替换整个窗口

Navigation Caliburn.Micro中的导航-如何替换整个窗口,navigation,caliburn.micro,Navigation,Caliburn.micro,我在Caliburn.Micro中阅读了一些关于导航如何使用屏幕和导体的文章,但它们似乎不符合我的要求 我的WPF应用程序有3个视图: 当用户启动应用程序时,将显示一个欢迎屏幕,应用程序将在后台执行一些启动工作 当应用程序完成启动过程时,它会导航到一个列表视图 当用户单击列表视图中的项目时,它将进入详细视图 但是,当在不同视图之间导航时,我需要替换整个窗口,当视图中有一个ContentControl并替换视图的部分时,Conductor似乎可以工作,现在我需要销毁前一个视图,并用一个新视图替换它

我在Caliburn.Micro中阅读了一些关于导航如何使用
屏幕
导体
的文章,但它们似乎不符合我的要求

我的WPF应用程序有3个视图:

  • 当用户启动应用程序时,将显示一个欢迎屏幕,应用程序将在后台执行一些启动工作
  • 当应用程序完成启动过程时,它会导航到一个列表视图
  • 当用户单击列表视图中的项目时,它将进入详细视图
  • 但是,当在不同视图之间导航时,我需要替换整个窗口,当视图中有一个
    ContentControl
    并替换视图的部分时,
    Conductor
    似乎可以工作,现在我需要销毁前一个视图,并用一个新视图替换它,没有ContentControl,没有MDI应用程序,那么实现这个简单的导航我会错过什么呢


    谢谢

    为什么这不能是一个
    ShellView模型
    /
    ShellView
    ,带有一个
    内容控件
    ,可以使用整个shell窗口?或者,您可以查看Caliburn.Micro提供的类。

    这是我使用的一个方法,但是当我从列表视图导航到详细视图时,我必须从
    ShellViewModel
    调用
    navigate
    方法,这引入了
    ListViewModel
    ShellViewModel
    之间的依赖关系,结果是我的每个ViewModel都依赖于
    ShellViewModel
    ,这看起来不太好:(,因此我想知道是否有更自由的方式在视图之间导航,我想尝试一下
    WindowManager
    ,谢谢您的列表视图模型/详细视图模型不需要依赖于shell视图模型。对于视图模型间的通信,您可以使用标准的.NET事件(从shell视图模型订阅列表视图模型上的事件)或使用Caliburn.Micro的事件聚合器。