Windows phone 7 采用Caliburn Micro对话方法的Windows Phone 8

Windows phone 7 采用Caliburn Micro对话方法的Windows Phone 8,windows-phone-7,mvvm,caliburn.micro,Windows Phone 7,Mvvm,Caliburn.micro,我正在编写一个管理作业的WindowsPhone8应用程序。我使用Caliburn Micro执行MVVM任务 简化概述:第1页显示作业列表。用户选择一个作业。应用程序显示相关页面-工作类型为“清洁盘子”的第2页或工作类型为“真空地板”的第3页。所有页面都是视图模型 到目前为止还不错 用户还可以按加号按钮添加新作业。我需要显示作业类型列表,以确定是显示第2页还是第3页 我希望作业类型列表是一个视图模型。如果我把它变成一个页面,它就会被放在我不想要的后堆栈中。我不知道如何在页面中显示基于用户控件的

我正在编写一个管理作业的WindowsPhone8应用程序。我使用Caliburn Micro执行MVVM任务

简化概述:第1页显示作业列表。用户选择一个作业。应用程序显示相关页面-工作类型为“清洁盘子”的第2页或工作类型为“真空地板”的第3页。所有页面都是视图模型

到目前为止还不错

用户还可以按加号按钮添加新作业。我需要显示作业类型列表,以确定是显示第2页还是第3页

我希望作业类型列表是一个视图模型。如果我把它变成一个页面,它就会被放在我不想要的后堆栈中。我不知道如何在页面中显示基于用户控件的视图模型。这是WPF应用程序的一个端口,在那里我将使用WindowManager在模式对话框中显示视图模型

选择权

  • 使作业类型列表成为一个页面,并在页面2/3关闭时将其从后堆栈中删除
  • 使作业类型列表成为用户控件。如何从第1页开始显示
  • 其他选择

  • 有人克服过类似的问题吗?有什么想法吗?

    您可以在自己的页面中列出您的工作类型列表,并将其从后堆栈中删除。只需向
    OnNavigatedFrom
    事件添加一些代码即可

    受保护的覆盖无效OnNavigatedFrom(NavigationEventArgs e){
    基于(e)的导航;
    NavigationService.RemoveBackEntry();
    }
    

    这将导致在导航到第2页或第3页时将其从后堆栈中删除。

    看起来很有希望。我会试试的。效果很好。下面是一篇很好的文章,它展示了如何以更适合Caliburn的方式进行此操作: