在我的应用中,我有一个按钮和一个图像。我单击按钮,它会加载设备的照片选择器,然后在选择时将图像源设置为所选图像。
如果我直接使用(ImageName).Source =“(Source)”通过代码设置图像,此方法就可以正常工作。
相反,我正在做的是发送该图像并将其存储在Azure存储中,并使用该图像的UR作为图像源的绑定。效果很好。
但是,当我发送图像时遇到的问题是,我希望它更新图像源而不必在代码中进行设置。我希望通过视图模型绑定来完成。
这是因为应用程序的某些部分也使用此URI,因此,当我更新Azure存储中的图像时,我希望它随后可以更新应用程序所有部分中的图像。
那这是怎么回事...
我实质上是在寻找一种“刷新” URI的方法。 我确定这与图像缓存的工作方式有关,但我不确定。 如果我关闭应用程序并再次打开它,则会加载该图像,但这不是理想的解决方案。
总结一下:我需要一种方法来更新/刷新其源在视图模型中绑定的图像的URI,以便它加载新添加的图像。
这是我的xaml ...
<ffimageloading:CachedImage HeightRequest="125"
WidthRequest="125"
x:Name="img_dp"
LoadingPlaceholder="ic_user_default.png"
ErrorPlaceholder="ic_user_default.png"
CacheDuration="0"
CacheType="None"
Source="{Binding DisplayPicture}">
</ffimageloading:CachedImage>
这是我的视图模型绑定...(UserInfo.DisplayPicture是URI)
private string _displayPicture { get; set; } = UserData.UserInfo.DisplayPicture;
public string DisplayPicture
{
get
{
if (_displayPicture == null)
{
return "ic_user_default";
}
else
{
return _displayPicture;
}
}
set
{
_displayPicture = value;
OnPropertyChanged(nameof(DisplayPicture));
}
}
PS: 我已经尝试