【问题标题】:Navigate to a View without ViewModel in MvvmCross在 MvvmCross 中导航到没有 ViewModel 的视图
【发布时间】:2012-05-21 11:16:30
【问题描述】:

我的一般问题:有没有办法在没有 ViewModel 的情况下导航到视图?

例如:

我有一个不包含 ViewModel 的 Activity,因为它在短时间内只显示一张图片,然后就消失了。现在正常的方法是执行 requestNavigate()。但我没有 ViewModel 可以进入那里。如何导航到此活动?

感谢您的回答!

【问题讨论】:

    标签: c# xamarin.android mvvmcross


    【解决方案1】:

    我的意见:是的 - 您应该始终使用 ViewModel。

    在每个平台上,mvvmcross 框架使用 ViewModel 的类型来识别要显示的视图。

    如果您不使用 ViewModel,那么客户端应用程序如何知道要显示什么视图?


    如果你发现你有很多这样的空 ViewModel 类,那么你当然可以总是使用这样的 ViewModel:

      public class StaticViewModel : BaseViewModel
      {
          public enum WhichOne
          {
              AboutPage,
              InfoPage,
              HelpPage,
              // etc
          }
    
          public WhichOne WhichPage { get; set; }
    
          public StaticViewModel(string which)
          {
              WhichPage = (WhichOne) Enum.Parse(typeof(WhichOne), which, false);
          }
      }
    

    但总的来说,我认为这不会比为每个视图使用一个 ViewModel 带来任何好处...

    【讨论】:

    • 这些视图在开发后期开始收集行为也并不少见——例如AboutViewModel 会议开始时只是一个空壳 - 现在看起来像:github.com/slodge/MvvmCrossConference/blob/master/…
    • Stuart 评论是对的:类的使用并没有定义它在OO中的存在。重要的是“那个模型做了什么”而不是“它做了什么”。在您的情况下,即使是空的 VM,也在为 View 的数据源建模。这就是它的责任。没有实际数据这一事实只是建模过程中的一个细节。
    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2019-02-10
    相关资源
    最近更新 更多