我有一个自定义类型HomeItem
和一个内容页面HomePage
,该页面具有属性HomeItemsSource
(这是ObservableCollection
的{{1}})。 HomeItem
用于ListView中的Itemsource。
Listview在HomeItemsSource
中包含一个自定义视图CardsHolder
,我想绑定到HomePage
类的属性Items
。我已经把所有东西都整理好了,但是我总是出错。
HomeItem
无论我做什么或如何调整代码。这是实际的代码。
HomePage.xaml.cs
System.ArrayTypeMismatchException: Attempted to access an element as a type incompatible with the array.
HomePage.xaml
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
HomeItemsSource = homeItemsVM.GetItems();
BindingContext = this;
Title = "Home";
}
private HomeItemsVM homeItemsVM = new HomeItemsVM();
public ObservableCollection<HomeItem> HomeItemsSource { get; set; }
public class HomeItemTemplateSelector : DataTemplateSelector
{
public DataTemplate SingleTemplate { get; set; }
public DataTemplate MultipleTemplate { get; set; }
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
return ((HomeItem)item).Type == HomeItem.ItemType.Singular ? SingleTemplate : MultipleTemplate;
}
}
}
HomeItem.cs
<ResourceDictionary>
<DataTemplate x:Key="singleTemplate">
<ViewCell>
<views:CardHolder Margin="0,0,0,18"
BackgroundColor="Aqua"
HorizontalOptions="Center"
Items="{Binding Items}">
...
</views:CardHolder>
<ListView Grid.Row="1"
HorizontalOptions="Fill"
ItemsSource="{Binding HomeItemsSource}"
ItemTemplate="{StaticResource itemTemplateSelector}"
BackgroundColor="Transparent"
SeparatorVisibility="None"
HasUnevenRows="True" />
请问我该怎么办?