【问题标题】:Caliburn Micro ShowDialog Modal only to ViewCaliburn Micro ShowDialog 模式仅用于查看
【发布时间】:2014-04-24 14:52:20
【问题描述】:

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

var windowManager = new WindowManager();
var login = new ConfirmActionViewModel();
windowManager.ShowDialog(login);

这种方法的问题在于 ShowDialog 方法为整个应用程序创建了视图模式(它阻塞了整个应用程序)。

我的问题

我怎样才能使这个对话框模式只用于活动视图?当我说模态时,我的意思是我需要阻止视图,直到用户单击我的 ConfirmActionView 的按钮。

我已经尝试了 ModalContentPresenter 类,但在使用 Caliburn 时遇到了一些问题,并且解决方案不如使用 WindowManager 干净。谢谢!!!!

【问题讨论】:

    标签: c# wpf mvvm caliburn.micro


    【解决方案1】:

    对于您的具体问题,WindowManager 无济于事。 在 Windows(和 WPF)中,模态意味着应用程序的所有窗口的模态。 因为这不是 CM 可以立即解决的问题。

    您需要的是在您的视图上叠加。 How to make overlay control above all other controls?

    然后,您可以将叠加层的可见性绑定到视图模型上的属性。

    【讨论】:

    • 谢谢。我终于使用 ModalContenPresenter 类解决了这个问题。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2012-10-24
    • 2012-05-08
    • 1970-01-01
    相关资源
    最近更新 更多