【发布时间】:2016-03-14 15:16:27
【问题描述】:
背景:
我们将 Caliburn.Micro 3.0.0-beta2 与 WPF + Xamarin iOS / Android 项目一起使用,我们希望确保视图模型可以跨平台以重用尽可能多的代码。
我们一直在研究如何将我们的导航抽象为可测试、跨平台以及可在视图模型而不是视图中调用。
我想知道是否有人对我们应该如何处理应用导航提出了建议。我们的屏幕要求我们在浏览时将一些数据(例如数据库 ID)注入屏幕。目前我们已经通过将数据注入视图并将其传递到视图模型中的视图优先方法来完成此操作,但这并不理想,因为它应该真正进入视图模型,因为它是视图逻辑(对?)。
视图模型是使用ViewModelLocator.LocateForView(this); 为视图视图创建的,然后使用 SimpleContainer 满足我们的其余依赖项。
根据https://github.com/Caliburn-Micro/Caliburn.Micro/issues/142,我们了解到导航尚未在 3.0.0 中实现。我们确实在寻找一种可以进行导航的方法,该方法可能类似于即将实施的 Caliburn.Micro 解决方案,并希望尽可能为此做出贡献。
问题:
- 我们将如何将数据放入视图模型而不是视图中,以使其更易于测试并且更类似于我们的 WPF 应用程序的工作方式?
- 这对于移动应用程序是否明智,还是我们应该采用视图优先的方法?如果是这样,什么是可测试的方法?
【问题讨论】:
标签: mvvm xamarin caliburn.micro