如何在“Blank Android App” 中实现MVVMCross是否可以在没有可移植类库(PCL)的情况下执行此操作?如何在空白的Android应用程序中使用MVVMCross
我必须创建一个App.cs类(该项目不包含一个),甚至可能吗?
如果我必须那么我该怎么做呢?
如何在“Blank Android App” 中实现MVVMCross是否可以在没有可移植类库(PCL)的情况下执行此操作?如何在空白的Android应用程序中使用MVVMCross
我必须创建一个App.cs类(该项目不包含一个),甚至可能吗?
如果我必须那么我该怎么做呢?
经过一番研究,我发现你可以在'Blank Android App'中创建一个App.cs文件(即一个扩展Android.App.Application
类的类),因此不需要PCL来使用MVVMCross。
您必须确保您有一个public App(IntPtr javaReference, JniHandleOwnership transfer)
构造函数的实现,并且有些人声明您还需要重写OnCreate方法(正如我所做的那样)。
还要确保在你的AssemblyInfo.cs文件中你不要有任何[应用程序]行,即。这不是:[assembly: Application(Debuggable = true)]
看到下面的代码。
using Android.App;
using Android.Runtime;
using System;
namespace YOUR.NAMESPACE
{
#if DEBUG
[Application(Debuggable = true)]
#else
[Application(Debuggable = false)]
#endif
public class App : Application
{
public App(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
{
//Do MVVMCross setup Here
//Mvx.RegisterType<ICalculation,Calculation>();
//Mvx.RegisterSingleton<IMvxAppStart>(new MvxAppStart<TipViewModel>());
}
public override void OnCreate()
{
base.OnCreate();
}
}
}
一个很好的例子就是TipCalc-Tutorial,你可以在官方的github页面上找到(https://github.com/MvvmCross/MvvmCross/wiki),因为大多数教程都是4.0,所以可能会有一些变化。作为一个例子:
当记者问到选择的平台,选择的.NET Framework 4.5,Windows 8中, 的Windows Phone 8的Silverlight的Windows Phone 8.1,Xamarin.Android和 Xamarin.iOS - 这将确保PCL在Profile259中。
自从MVVMCross 4.2.2开始不再支持Silverlight以来已经过时了。所以你应该使用Profile 7作为例子。更多信息在这里PCL配置文件:http://danrigby.com/2014/05/14/supported-pcl-profiles-xamarin-for-visual-studio-2/
但是,是的,你基本上应该有一个可移植的类库,即使它没有它的工作。它只需要很多优点而不需要太多的努力。
而你不需要“App.cs”,但你需要一个继承自MvxApplication的类。因此,坚持使用这个名称可能会更容易,因为每个人都知道它的用途。
但只是先看看教程,那里的一切都应该解释。
嘿@Cyriac感谢教程的链接,他们真的很好,但是您可以在没有PCL的情况下使用MVVMCross,请参阅答案。 –
是的,它猜测它可能有效,但如果没有它,它仍然不是一个巨大的粉丝。但可能取决于项目的选择。但很高兴知道它确实有效! – Cyriac
是的,这是一个项目需求 –
您是否试过阅读文档? https://mvvmcross.com/docs/getting-started – Jason
@Jason,我试过阅读文档,但他们是为一个有PCL的Xamarin应用程序,我想使用MVVMCross而没有PCL。 –