我在我的WPF应用程序中使用MVVMCross,我想在 GUI 中提供一个关闭(或退出)按钮来关闭整个应用程序。是否有使用MVVMCross功能的直接方法?
我已经尝试了以下方法MainViewModel:
public class MainViewModel : MvxViewModel
{
private MvxCommand _closeCommand;
public MvxCommand CloseCommand {
get {
return _closeCommand ?? (_closeCommand = new MvxCommand(DoClose));
}
}
public void DoClose() {
Close(this);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,无济于事。DoClose当我按下一个绑定到 的按钮时,该方法确实被调用CloseCommand,但是视图模型(和相应的视图)无法关闭,即使 WPFApp StartupUri设置为MainView.
许多 MvvmCross 平台不支持应用程序自行关闭——这在 iOS、WindowsPhone、Android、WindowsPhone 等中的行为令人不悦——那里的公共 API 不支持它——所以这不是一个常见的跨平台请求。
然而,如果你想为那些支持它的平台实现这个功能,那么我认为最好的地方可能是在 Presenter 或自定义的 UI 注入服务中。
要将其放入自定义演示器中,只需:
CreatePresenter在您的 Setup.cs中的方法的覆盖中返回此类的实例ChangePresentation自定义演示器中的方法 - 此方法可能使用“众所周知的” MvxClosePresentationHint.cs,它是Close发送的内容,或者它可以使用您ChangePresentation(MvxPresentationHint hint)在 ViewModel 中定义和发送的新自定义演示文稿提示。要将此功能置于某些自定义 UI 服务中,请参阅http://mvvmcross.wordpress.com/ 中的N=31
如果您正在查看此关闭区域,那么您可能还需要考虑关闭应用程序时要采取的步骤(通过用户或操作系统操作)。MvvmCross 确实公开了框架内常见的“生命周期监视器”钩子的开始,但实际上这些钩子目前非常基础 - 因此您可能会发现您需要在这里构建自己的公共层。
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |