【发布时间】:2015-10-19 18:12:36
【问题描述】:
我正在尝试在 Xamarin.Forms 项目中使用 Autofac。我成功创建了基本示例,甚至将 ViewFactory 用于一些更复杂的示例。
但是,我无法将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:\Users\dushyantb\Documents\Visual Studio 2015\Projects\TestIoc\TestIoc\TestIoc\TestModule.cs:27 \n 在 TestIoc。 Views.PageProxy.get_Navigation () [0x00001] 在 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] 在 C:\Users\dushyantb\Documents\Visual Studio 2015\Projects\TestIoc\TestIoc\TestIoc\Services\Navigator.cs:58 "
我做错了什么?
注意:导航在没有 MasterDetailPage 时有效。
【问题讨论】:
-
你能分享一下异常的堆栈跟踪吗?
-
我已经用堆栈跟踪更新了这个问题。请检查一下...
标签: c# xamarin.ios autofac xamarin.forms