如何在「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。 –