【发布时间】:2018-06-07 04:52:34
【问题描述】:
我在 MVVM 中的 xamarin.Forms 应用程序存在问题。我有一个 ListView,我想在 ItemTemplate 中显示一个图像。为此,我创建了一个 ImageRessource 类:
[ContentProperty("Source")]
public class ImageResourceExtension : IMarkupExtension
{
public string Source { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
if (Source == null)
{
return null;
}
var imageSource = ImageSource.FromResource($"CoPro.Assets.{Source}");
return imageSource;
}
}
这是我的 ListView 的 xaml:
<ListView ItemsSource="{Binding Series}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackLayout Orientation="Horizontal">
<Image Source="{images:ImageResource image.jpg}"/>
</StackLayout>
<Label Grid.Column="1" Text="{Binding Name}" Style="{StaticResource UsualLabelTemplate}" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
此外,我已经通过这个命名空间设置了“图像” :xmlns:images="clr-namespace:CoPro.Assets"
像这样,我的 ListView 为每个“系列”项目显示相同的图片。 对于每个项目,都有一个带有图像路径的字符串属性。 请问如何显示每个项目的图像?
提前感谢您的帮助。
【问题讨论】:
-
为什么不直接使用 FileImageSource?
标签: image listview xamarin.forms