我的UWP
应用程序继承自Base类,它继承自MvxApplication<Setup, CoreApp>
:
public sealed partial class App : WindowsApplication
{
public App()
{
InitializeComponent();
}
}
public class WindowsApplication : MvxApplication<Setup, CoreApp>
{
}
public class Setup : MvxWindowsSetup<CoreApp>
{
public override IEnumerable<Assembly> GetViewAssemblies()
{
// need to do this as otherwise I receive the message that corresponding view to view model is not found
var assemblies = base.GetViewAssemblies().ToList();
assemblies.Add(typeof(Forms.App).Assembly);
return assemblies;
}
}
但是,启动它时,收到以下错误消息:
未配置MvxContentPagePresentationAttribute类型 演讲者词典
据我了解,所有这些都不是启动Xamarin.Forms
MvvmCross
应用程序的正确方法,因为UWP App和安装程序应分别从MvxFormsApplication
和MvxFormsWindowsSetup<CoreApp, Forms.App>
继承(让Xamarin.Forms应用程序正确初始化)。
可是:
MvxFormsApplication
不是通用的,也不提供传递Forms-generic设置的功能。MvxFormsApplication
继承了应用程序并使用this.RegisterSetupType<MvxFormsWindowsSetupInheritor>();
,Visual Studio编译器也从不允许我编译项目,因为一些奇怪的错误消息(类似于The name “WindowsApplication” does not exist in the namespace “…”)(这个可能是Visual Studio的一些问题,但我有VS 15.7版本,它希望代码能够工作(同样,MvvmCross声明它们支持UWP和XF)。所以,从我的理解,如果有Xamarin.Forms应用程序,必须有一些方法将实际上Xamarin.Forms App类传递给UWP App类初始化。
MvvmCross再次代表UWP和Xamarin.Forms支持,但是我看不出设置此类应用程序的方式的任何明确示例。
MvvmCross文档一如既往地非常“适度”。有一些关于设置MvvmCross UWP应用程序以及设置MvvmCross XF iOS / Android的说明,但关于MvvmCross XF UWP的唯一一个词是:
您现在可以自由地将自定义渲染器放在另外的渲染器中 部件。要使其工作,您只需添加装配即可 到Setup.ViewAssemblies集合。 (在官方网站上的文档) (这仍然听起来很奇怪,因为iOS和Android版本不需要额外的代码,这让我觉得这样的(当前)文档还没有完全实现)
和
- UWP,WPF
- 从MvxApplication扩展应用程序。 (App:MvxApplication {})
来自MvvmCross.Forms
package readme.txt
文件,当所有其他平台再次期望从基于MvxForms *的应用程序类继承时。
MvvmCross伙计们,对此有什么看法?
答案 0 :(得分:1)
当我设置一个新的Xamarin.Forms项目时,我总是遵循Playground sample in the MvvmCross GitHub,因为这个示例随着API一起发展并且始终是最新的,因为它是MvvmCross解决方案的一部分,所以任何提交都需要保留其功能。因此,如果您想在最小的UWP + Xamarin.Forms项目中查看所有内容的外观,请参阅链接文件夹中的Playground.Forms.UI
和Playground.Forms.Uwp
项目。