Xamarin - 如何从两个类获取列表视图源数据
本文关键字:获取 两个 列表 视图 数据 Xamarin | 更新日期: 2023-09-27 18:35:27
我在Xamarin.Form
应用程序中有一个Xamarin ListView
。它的初始化如下:
ListView listView = new ListView
{
HasUnevenRows = true,
ItemTemplate = new DataTemplate(typeof(StudentCell)),
ItemsSource = register.StudentList,
SeparatorColor = Color.FromHex("#ddd")
};
listView.ItemSelected += OnSelection;
我似乎无法在网上找到任何关于如何/是否可以将ItemsSource
两个单独的类的内容。我有一个包含姓名和状态等数据的学生列表,但需要为学生列表中的每个项目加载来自另一个班级的图像。
有什么办法可以做到这一点吗?
或者,我制作了一个自定义单元格类型,StudentCell
.有没有办法从自定义模板中指定绑定到另一个类(不是学生)?
一种需要考虑的可能性是,从register.StudentList
,假设它的类型 Student
,如果您无法在该类中包含 StudentImage
属性,那么也许派生一个新类,例如从Student
继承的StudentWithImage
,因此它将具有相同的属性。
然后,可以将 StudentImage
属性添加到此继承自 Student
的新类中。
在返回的结果集上,可以枚举它的所有实例,并通过对其他类执行查找将 StudentImage
属性设置为适当的值。
然后,您只需将StudentWithImage
列表绑定到Xamarin.Forms
List
,即可从单个数据源工作。
这就是 MVVM 模式中的 VM (ViewModel) 的用途。 它允许您的视图 (ListView) 通过创建组合来自多个源的数据的 ViewModel 类来显示来自多个模型(学生和图像)的数据。
在您的情况下,您可以创建一个同时包含学生和图像的学生视图模型类。 然后,将列表视图绑定到 ViewModel 类。