在我的Xamarin.Forms XAML文件中,我有一个列表,我在ImageCell
内部使用DataTemplate
来显示项目。到目前为止,我已经想出如何为每个项目显示两段文字和一张图片,但我还想添加一个按钮。
我尝试在ImageCell
内放置一些东西,但是我收到了以下错误:
无法设置ImageCell的内容,因为它没有 ContentPropertyAttribute
我查了如何使用ContentPropertyAttribute
,但documentation并没有真正解释如何使用它。
如何为每个DataTemplate
添加其他元素?
<ListView ItemsSource="{Binding}" x:Name="Results">
<ListView.ItemTemplate>
<DataTemplate>
<ImageCell ImageSource="{Binding picture}" Text="{Binding name}" Detail="{Binding category}">
<Button Text="test" />
</ImageCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:2)
ListView中的数据显示在单元格中。 每个单元格对应一行数据。
由于您希望连续获得的数据多于ImageCell
提供的数据,因此您可以使用ViewCell
构建ListView
行中显示的内容。
示例:强>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Image ImageSource="{Binding picture}"/>
<Label Text="{Binding name}" />
<Button Text="Details" Command="{Binding DetailCommand}" />
</StackLayout>
</ViewCell>
</DataTemplate>
答案 1 :(得分:1)
您可以使用viewcell代替imagecell。在viewcell中你可以使用布局和那里的图像,标签和按钮
答案 2 :(得分:1)
而不是ImageCell
,您应该使用ViewCell
&amp;在ViewCell
。
<ListView ItemsSource="{Binding}" x:Name="Results">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout BackgroundColor="#eee" Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Image Source="{Binding picture}" />
<Label Text="{Binding name}" TextColor="#f35e20" />
<Label Text="{Binding category}" TextColor="#f35e20" />
<Button Text="test" />
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>