MvvmCross - 构建共享的视图模型和视图

时间:2013-06-19 19:23:55

标签: mvvmcross

到目前为止,喜欢这个框架。

那说,打了我的第一个路障。我创建了一个基于MvvmCross的库(实际上是一些库),它们执行将在同一系列的多个跨平台应用程序中使用的登录服务。我无法弄清楚的是如何将这些登录库插入我的其他应用程序(也将使用MvvmCross)。我希望能够在这些应用程序中重复使用相同的ViewModel和Views。

假设我已经阅读并观看过很多slodge的视频。 :)哪个非常好。

我认为MvvmCross with two core libraries与我正在努力做的事情是最接近的,这只是将MvvmCross项目粉碎在一起并使其完全神奇。但是在那篇文章中,代码示例中存在一些不一致之处,我一直无法使用它。

1 个答案:

答案 0 :(得分:1)

安装程序中有两种方法可以告诉mvvmcross在哪里查找Views和ViewModel。如果您覆盖这些,那么系统应该找到您的视图并查看模型。

    protected virtual Assembly[] GetViewAssemblies()
    {
        var assembly = GetType().Assembly;
        return new[] {assembly};
    }

    protected virtual Assembly[] GetViewModelAssemblies()
    {
        var app = Mvx.Resolve<IMvxApplication>();
        var assembly = app.GetType().Assembly;
        return new[] {assembly};
    }

除此之外,我所知道的唯一补充是您可能需要:

  • 给wp一些额外的帮助,为其他程序集中的任何视图查找xaml url - 默认情况下,mvx只查找/ views中的xaml uri,而不是任何其他程序集中的任何其他文件夹。提供xaml网址的一种方法是在View的c#文件中添加MvxPhoneViewAttribute,另一种方法是覆盖MvxPhoneViewsContainer以使其提供自定义网址。
  • 调整一些android项目设置,以便从库到主项目共享资源(虽然这个功能在今年的xamarin.android中变得更好。