c# - Xamarin 绑定到 XAML 中的属性(自定义类型对象列表)
问题描述
我有一个自定义类型和一个具有属性HomeItem
的内容页面(这是of )。在 ListView 中使用 Itemsource。HomePage
HomeItemsSource
ObservableCollection
HomeItem
HomeItemsSource
Listview 包含一个自定义视图CardsHolder
,HomePage
我想绑定到该类的一个Items
属性HomeItem
。我已经把所有东西都连接好了,但我一直收到错误消息。
System.ArrayTypeMismatchException: Attempted to access an element as a type incompatible with the array.
无论我做什么或如何调整代码。这是实际的代码。
主页.xaml.cs
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;
}
}
}
主页.xaml
<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" />
HomeItem.cs
public class HomeItem : ObservableCollection<FeaturedItem>
{
//public ObservableCollection<FeaturedItem> Items { get; set; } = new ObservableCollection<FeaturedItem>();
public ItemType Type { get; set; }
public string Title { get; set; }
public string Contributor { get; set; }
...
}
请问我该怎么办?
解决方案
推荐阅读
- javascript - 正则表达式 查找包含变量的模式并匹配可能包含连字符、逗号、撇号和空格的相同变量
- python - 在python中对字典中的值进行排序
- python-3.x - 从数据切片创建一个新的 FITS 文件
- android - 不同包中的相同库不起作用
- azure - 如何自动化本地到 Azure SQL 数据库数据导出?
- google-analytics - 实时数据显示所选域不存在的页面的访问量
- amazon-ec2 - 如果我使用 ufw 关闭端口 22,如何连接到 ec2?
- rx-kotlin - 如何使用 MockK 模拟 observable
- python - 如何在if语句中返回多个函数(Python)
- unity3d - 更改场景或关闭 Unity 后脚本不起作用