我想在Xamarin.Forms項目中使用Autofac。我成功創建了基本樣本,甚至使用ViewFactory來處理更復雜的樣本。在MasterDetailPage中使用Autofac和Xamarin.Forms導航
但是,我無法使用MasterDetailPage
以及導航。
我正在使用由Jonathan Yates編寫的工廠和服務。你可以找到自己的代碼here
我的應用程序引導程序:
protected override void ConfigureApplication(IContainer container)
{
var viewFactory = container.Resolve<IViewFactory>();
var mainPage = viewFactory.Resolve<TestViewModel1>();
var navigationPage = new NavigationPage(mainPage);
var masterPage = new ContentPage();
masterPage.Title = "asd";
_application.MainPage = new MasterDetailPage()
{
Master = masterPage,
Detail = navigationPage
};
}
我TestViewModel1
有導航到TestViewModel2
命令:
ButtonCommand = new Command(async()=>await _navigator.PushAsync<TestViewModel2>());
然而,隨着異常應用程序崩潰說
無法從源類型轉換爲目標類型。
這種情況發生在Navigator
推送下一頁時。
堆棧跟蹤:
「在TestIoc.TestModule + <> c.b__0_0()[0x00000]在C:\用戶\ dushyantb \文件\的Visual Studio 2015 \項目\ TestIoc \ TestIoc \ TestIoc \ TestModule.cs:27 \ n at TestIoc.Views.PageProxy.get_Navigation()[0x00001] in C:\ Users \ dushyantb \ Documents \ Visual Studio 2015 \ Projects \ TestIoc \ TestIoc \ TestIoc \ Views \ PageProxy.cs:39 \ n在TestIoc.Navigator.get_Navigation()[0x00001]在C:\ Users \ dushyantb \ Documents \ Visual Studio 2015 \ Projects \ TestIoc \ TestIoc \ TestIoc \ Services \ Navigator.cs中:26 \ n在TestIoc.Navigator + d__8 `1 [TestIoc.ViewModels.TestViewModel2] .MoveNext()[0x0003a] in C:\ Users \ dushyantb \ Documents \ Visual Studio 2015 \ Projects \ TestIoc \ TestIoc \ TestIoc \ Services \ Navigator.cs:58「
我做錯了什麼?
注意:當沒有MasterDetailPage時,導航工作。
你能分享異常的堆棧跟蹤嗎? –
我已經用堆棧跟蹤更新了這個問題。請檢查出來... –