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