我在列表视图中有两个图像。但是,我从数据库中获取的一个图像,但并非列表中的所有项目都在数据库中有图片。
我尝试将 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}" />
有关更多详细信息,请显示此链接