显示 url 图像(如果它存在于数据库中).如果 url 为空,则显示另一张图片



我在列表视图中有两个图像。但是,我从数据库中获取的一个图像,但并非列表中的所有项目都在数据库中有图片。

我尝试将 Visible 语句放入 XAML 中,然后在我的模型中添加一些逻辑,但没有任何运气。请参阅代码:

我的两张图片:

<u:CircleLabelSmall  IsVisible="{Binding hideImage}"                                                        Text="{Binding PersonName, Converter={StaticResource NameConverter}}"
BadgeColor="{Binding PersonName, Converter={StaticResource NameColorConverter}}" />
<d:CircleImage Source="{Binding adImage}"  IsVisible="{Binding showImage}">                                                      
</d:CircleImage>

此字符串从数据库中获取图像:

public string adImage { get; set; }

这是我尝试让它在我的模型中工作的尝试:

public bool isImageUrlNull { get { return!string.IsNullOrEmpty(adImage); } }
public string adImage { get; set; }

感谢任何可用的提示:)谢谢

最简单的方法是使用转换器并根据条件返回Source

public class ImageSourceConvertor: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(string.IsNullOrWhiteSpace(value.ToString())){
return "DefaultImage";
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

查看 Microsoft 文档中的以下帖子以了解转换器的工作原理:https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/data-binding/converters

古德勒克

如果您有任何疑问,请还原

使用"FFImageLoad"牛轧糖包直接在xml中使用默认placehoder的任何图像url

在 XAML 中添加命名空间

xmlns:forms="clr-namespace:FFImageLoad.Forms;assembly=FFImageLoad.Forms">

<forms:CachedImage
Aspect="AspectFill"
LoadingPlaceholder="placeholderimageName"
Source="{Binding YourImage}" />

有关更多详细信息,请显示此链接

最新更新