mvvmcross - MvvmCross 中的复合 View

标签 mvvmcross

我有一个 WPF MVVM 应用程序,我想重构它以使用 MvvmCross 来支持 Android 实现的 WPF 和 Mono。

我们的应用程序的 View 包括:

  • 始终可见的工具栏
  • 导航栏区域
  • 主视图区域
  • 弹出窗口区域

  • 这些区域中的每一个都是主应用程序窗口上的 UserControl,而 UiService 只是交换每个区域中的 View 。在弹出窗口的情况下,它也只是主窗口上的一个 UserControl,它在对 UiService 的 Show 或 Hide 调用时可见性发生变化。 UiService 还接受一个上下文参数,该参数允许将状态信息传递到要显示的 View 模型中。

    主视图通常是几个 subview 的组合。在这些情况下,主视图模型创建作为属性公开的 subview 模型。主视图将这些属性设置为 subview 的数据上下文。

    我认为 MvvmCross 肯定会支持这种风格的复合 View ,但我找不到这样的例子。是否有任何相关的 MvvmCross 示例?在 MvvmCross 中实现的推荐方法是什么?

    最佳答案

    I would think that MvvmCross would certainly support this style composite views, but I couldn't find an example of such. Are there any relevant MvvmCross examples? What would be the recommended approach for implementing in MvvmCross?



    这种 View 样式不是移动应用程序的默认样式 - 大多数移动应用程序都是基于页面的。

    然而,复合 View 在平板电脑应用程序中变得越来越普遍——甚至移动应用程序也有异常(exception)——例如。选项卡、全景图、弹出窗口等

    为了允许不同类型的显示,每个 MvvmCross UI 平台都提供了一个 presenter您可以根据需要进行自定义。

    这个presenter类是您可以选择如何呈现 ViewModel 和 Views 的地方。此外,由于它只是一个 C# 类,它可以将此职责委托(delegate)给任意数量的其他对象,从而允许您构建越来越复杂的面板、弹出窗口、选项卡、嵌入式导航堆栈等模式。

    有关这方面的一些信息,包括一些示例的链接,请参阅此幻灯片 - https://speakerdeck.com/cirrious/presenters-in-mvvmcross

    WPF 和 iOS TwitterSearch 示例可能是一个很好的起点 - https://github.com/slodge/MvvmCross-Tutorials/tree/master/Sample%20-%20TwitterSearch

    关于mvvmcross - MvvmCross 中的复合 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16514772/

    相关文章:

    android - Android 上的 MvvmCross 和链接问题

    c# - 无法构造和初始化viewModel

    android - 在 EditText 中希望光标位置位于字符串末尾

    xamarin - 对于简单到中等复杂度的新项目,我应该选择 MvvmLight 还是 MvvmCross?

    performance - Xamarin Mvvmcross 启动 dll 加载缓慢

    sqlite - MVVMCross社区SQLite-Net插件-无法打开数据库

    使用 MVVMCROSS 的 WPF 应用程序

    viewmodel - MvvmCross ViewModel 缓存和重新初始化

    c# - 带有 MvxSpinner 的 MvxListView 在第一个项目上显示空条目

    c# - 在 MVVMCross 中将对象传递到 "navigated to" View 模型的最佳方法是什么?