无法使用mvvm:ViewModelLocator创建视图的XAML数组
我想制作一个包含2个自定义视图的xamarin表单旋转木马视图。我有以下代码:无法使用mvvm:ViewModelLocator创建视图的XAML数组,mvvm,xamarin.forms,prism,Mvvm,Xamarin.forms,Prism,我想制作一个包含2个自定义视图的xamarin表单旋转木马视图。我有以下代码: <ContentPage x:Class="MainView" xmlns:mvvm="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" xmlns:views="clr-namespace:Views" x:Name="Main"> <CarouselView> <CarouselView.ItemsSource>
<ContentPage x:Class="MainView" xmlns:mvvm="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" xmlns:views="clr-namespace:Views" x:Name="Main">
<CarouselView>
<CarouselView.ItemsSource>
<x:Array Type="{x:Type View}">
<views:View1 mvvm:ViewModelLocator.AutowirePartialView="{x:Reference Main}" />
<views:View2 mvvm:ViewModelLocator.AutowirePartialView="{x:Reference Main}" />
</x:Array>
</CarouselView.ItemsSource>
<CarouselView.ItemTemplate>
<DataTemplate>
<ContentView Content="{Binding .}" />
</DataTemplate>
</CarouselView.ItemTemplate>
</CarouselView>
</ContentPage>
启动应用程序时,会引发异常:
Xamarin.Forms.Xaml.XamlParseException:'位置80:37。找不到
Main
引用的对象
如果我只是将两个视图都设置为主页的直接内容,它就可以正常工作。我做错了什么?
有没有办法通过MainViewModel收集视图?我对您的方案没有信心。但主要的参考文献在哪里?它在主页上吗?我找不到x:name=“Main”是的任何视图。。。旋转木马<代码>。。。通过MainViewModel创建视图集合…-您不想这样做。制作一个视图模型集合并映射到数据模板。我想Haukinger所说的是有意义的,关于将视图映射到项目。您可以使用DataTemplateSelector。API
ItemTemplateSelector
与ListVew
中的APICarouseView
不同ItemTemplate
本身接受DataTemplateSelector对象。是的,用于在运行时选择项外观并绑定到itemSource中的相应模型。