Xamarin表单ListView具有多个datatemplate

Xamarin表单ListView具有多个datatemplate,listview,cell,datatemplate,xamarin.forms,Listview,Cell,Datatemplate,Xamarin.forms,在XamarinForms中,我必须开发一个显示用户设置的页面。因此,我创建了一个从ContentPage继承的SettingsPage。在这个页面上,我有一个ListView,其中ItemSource是一个ObservableCollection。 此页上的所有单元格必须在左侧有一个标签,标签下方有一个条目。此单元格的右侧必须显示图像或SwitchControl。这取决于它显示的用户设置 到目前为止,我为ListView的ItemTemplate创建了一个SettingsPage和一个自定义单

在XamarinForms中,我必须开发一个显示用户设置的页面。因此,我创建了一个从ContentPage继承的SettingsPage。在这个页面上,我有一个ListView,其中ItemSource是一个ObservableCollection。 此页上的所有单元格必须在左侧有一个标签,标签下方有一个条目。此单元格的右侧必须显示图像或SwitchControl。这取决于它显示的用户设置

到目前为止,我为ListView的ItemTemplate创建了一个SettingsPage和一个自定义单元格。在这个代码中,所需的图像是硬编码的,这在将来也必须改变。 实现这一目标的最佳方式是什么?我对XamarinForms完全是新手,所以到目前为止对代码的提示非常感谢

谢谢, HJS

公共类设置页面:ContentPage { 公共设置空间 { var userSettings=DemoData.userSettings; var listView=new listView{ItemsSource=userSettings}; listView.ItemTemplate=新的DataTemplate typeofUserCell; listView.RowHeight=60; 内容=列表视图; }
} 所以实际上我看到了两个问题:

如何更改硬编码图片 如何显示SwitchControl或Image 答案都是:使用数据绑定

正如您已经为标签的属性文本和条目的属性文本创建了绑定一样,您也可以为图像的属性源创建绑定。视图模型中的属性类型将是string类型,就像您在ViewCell中指定了一个带有硬编码图像源的字符串一样


要显示SwitchControl或图像,还可以绑定属性IsVisible,该属性是图像和SwitchControl从VisualElement继承的。因此,您基本上要实例化一个图像和一个SwitchControl,并将它们添加到ViewCell中的布局中,并将它们各自的IsVisible属性绑定到视图模型的两个不同的布尔属性。这允许您实现逻辑来决定何时在视图模型中显示一个或另一个,就像在MVVM中应该显示的那样

谢谢你的回复。在internet的帮助下,我为ListView编写了一个DataTemplateSelector。但我会试试你的建议。