我想在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时,导航工作。
你能分享异常的堆栈跟踪吗? –
我已经用堆栈跟踪更新了这个问题。请检查出来... –