C# 如何使用MVVM将Restful服务中的图像显示到Xamarin.Forms视图

C# 如何使用MVVM将Restful服务中的图像显示到Xamarin.Forms视图,c#,rest,xamarin,mvvm,service,C#,Rest,Xamarin,Mvvm,Service,我有一个Restful服务,它将图像作为流提供给我。当我在浏览器中调用该服务来显示图像时,它在那里也工作得很好。 现在我尝试在Xamarin视图中显示该图像,如下所示: <ffimageloading:CachedImage Source="{Binding ImageSource}" Aspect="AspectFill" WidthRequest="75" HeightRequest="200">&l

我有一个Restful服务,它将图像作为流提供给我。当我在浏览器中调用该服务来显示图像时,它在那里也工作得很好。 现在我尝试在Xamarin视图中显示该图像,如下所示:

<ffimageloading:CachedImage Source="{Binding ImageSource}" Aspect="AspectFill" WidthRequest="75" HeightRequest="200"></ffimageloading:CachedImage>
当我在视图中的图像源中直接提供图像链接时,它可以完美地工作

<ffimageloading:CachedImage Source="https://www.shareicon.net/data/128x128/2016/05/02/758874_package_512x512.png" Aspect="AspectFill" WidthRequest="75" HeightRequest="200"></ffimageloading:CachedImage>

但当我尝试从ViewModel获取ImageSource时,没有一个视图显示图像,也没有服务调用或任何图像链接。 我在调试时看到的一件奇怪的事情是,每当我更改视图中激活热重新加载的任何内容时,它都会突然在模拟器中显示ViewModel中的图像。
我是Xamarin的新手,不知道如何解决它。

您的VM没有实现
INotifyPropertyChanged
,将其放在适当的位置,并向视图/xaml的
ImageSource
发出更改信号。

Source=“{Binding ImageSource}”
-虚拟机中的
ImageSource
属性在哪里?是
ImageSource
依赖属性吗?我认为它不是依赖属性。我已经更新了ImageSource属性@Ωmegamanually VM的问题,它实际上是从一个实现了INotifyPropertyChanged的
BaseViewModel继承而来的:
公共类BaseViewModel:INotifyPropertyChanged
奇怪的是,每当我在视图中做任何更改时,
都会突然热重载在emulator中显示图像。正在从VM
Id=item.Id执行任何其他更改
Text=item.TITLE
Description=item.CONTENT要清除
设置属性(参考图像源,值)
是否正在通知NotifyPropertyChanged事件?非常感谢兄弟,我刚刚将属性名称从
ImageSource
更改为
ImgSource
,并将
属性的格式更改为:
private ImageSource\u ImageSource
PublicImageSource ImgSource
{
\U ImageSource;
set=>SetProperty(ref\u ImageSource,value);
}
它现在正在激活
INotifyPropertyChanged
并开始工作!任何其他名字的玫瑰……:)
<ffimageloading:CachedImage Source="https://www.shareicon.net/data/128x128/2016/05/02/758874_package_512x512.png" Aspect="AspectFill" WidthRequest="75" HeightRequest="200"></ffimageloading:CachedImage>