在 CaliburnMicro 的 ViewModel 中关闭对话框

Closing dialog from within ViewModel in CaliburnMicro

假设我们有这样的虚拟机:

class ViewModel : Screen 
{
  public ViewModel()
  {
    if(some condition)
    {
      TryClose();
    }
  }
}

然后在其他一些 class 中我使用 WindowManager

显示它
_windowManager.ShowDialog(new ViewModel());

但 TryClose 在这里不起作用。那么问题来了:如何在ViewModel的构造函数中取消对话框?

构造函数不是取消对话框的好地方。您可以覆盖 OnViewLoaded 并在那里完成您的工作。在实际显示对话框之前,您可以使用许多覆盖。