无法使用mvvm:ViewModelLocator创建视图的XAML数组

无法使用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>

我想制作一个包含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>
        <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
中的API
CarouseView
不同
ItemTemplate
本身接受DataTemplateSelector对象。是的,用于在运行时选择项外观并绑定到itemSource中的相应模型。