在 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 并在那里完成您的工作。在实际显示对话框之前,您可以使用许多覆盖。
假设我们有这样的虚拟机:
class ViewModel : Screen
{
public ViewModel()
{
if(some condition)
{
TryClose();
}
}
}
然后在其他一些 class 中我使用 WindowManager
显示它_windowManager.ShowDialog(new ViewModel());
但 TryClose 在这里不起作用。那么问题来了:如何在ViewModel的构造函数中取消对话框?
构造函数不是取消对话框的好地方。您可以覆盖 OnViewLoaded 并在那里完成您的工作。在实际显示对话框之前,您可以使用许多覆盖。