首页 文章

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

提问于
浏览
0

到目前为止喜欢这个框架 .

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

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

我认为MvvmCross with two core libraries与我最无法解决的问题是最接近的 .

1 回答

  • 1

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

    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中已经变得更好了 .

相关问题