C# Caliburn Micro ShowDialog模式仅用于查看

C# Caliburn Micro ShowDialog模式仅用于查看,c#,wpf,mvvm,caliburn.micro,C#,Wpf,Mvvm,Caliburn.micro,我正在用Caliburn.Micro和WPF上的MVVM做一些测试。我的应用程序有一个AppView(WPF窗口),其中包含一个TabControl。在其中,我在新选项卡上加载视图(WPF UserControl)及其对应的屏幕视图模型(遵循SimpleMDI示例)。 现在,我需要从我的viewmodel中显示一个对话框,我的操作如下: var windowManager = new WindowManager(); var login = new ConfirmActionViewModel(

我正在用Caliburn.Micro和WPF上的MVVM做一些测试。我的应用程序有一个AppView(WPF窗口),其中包含一个TabControl。在其中,我在新选项卡上加载视图(WPF UserControl)及其对应的屏幕视图模型(遵循SimpleMDI示例)。 现在,我需要从我的viewmodel中显示一个对话框,我的操作如下:

var windowManager = new WindowManager();
var login = new ConfirmActionViewModel();
windowManager.ShowDialog(login);
这种方法的问题在于ShowDialog方法为整个应用程序创建视图模式(它会阻止整个应用程序)

我的问题

如何使此对话框仅成为活动视图的模态?当我说modal时,我的意思是我需要阻止视图,直到用户单击ConfirmationView的按钮


我已经尝试了ModalContentPresenter类,但Caliburn有一些问题,解决方案不如使用WindowManager干净。谢谢

对于您的特定问题,
WindowManager
没有帮助。 在Windows(和WPF)中,模态指应用程序的所有窗口的模态。 因为这不是CM可以解决的问题

您需要的是视图上的覆盖


然后可以将覆盖的可见性绑定到viewmodel上的属性。

谢谢。我最终使用ModalContentPresenter类解决了这个问题。