Xamarin.forms 通过ListView滚动,来自绑定的图像无法正确重新显示

Xamarin.forms 通过ListView滚动,来自绑定的图像无法正确重新显示,xamarin.forms,Xamarin.forms,我有一个带有ItemsSource的ListView,它是一个列表。viewcell将MyDataModel中的一些字符串属性绑定到标签,并将ImageSource属性绑定到图像 想法是,他们单击按钮,从gallery中选择一个图像,viewcell中的图像将更改为他们选择的图像 这一切都很好,直到他们滚动。当图像离开屏幕并向上滚动时,所有图像都会显示相同的图像(最后选择的图像,或者更确切地说,是向上滚动时出现的第一个图像) 我意识到它正在卸载图像并重新加载。。但是为什么它不能从正确的绑定源获取

我有一个带有ItemsSource的ListView,它是一个列表。viewcell将MyDataModel中的一些字符串属性绑定到标签,并将ImageSource属性绑定到图像

想法是,他们单击按钮,从gallery中选择一个图像,viewcell中的图像将更改为他们选择的图像

这一切都很好,直到他们滚动。当图像离开屏幕并向上滚动时,所有图像都会显示相同的图像(最后选择的图像,或者更确切地说,是向上滚动时出现的第一个图像)


我意识到它正在卸载图像并重新加载。。但是为什么它不能从正确的绑定源获取它呢?

不确定,如果我理解你的问题正确(没有代码)…
但是,如果将ListView绑定到具有自定义ViewCell的列表,并希望更改某些显示的数据,则以下操作应该有效:
-首先更改列表中的数据
-然后重新指定ViewCell:

 lvXX.ItemTemplate = new DataTemplate(typeof(XXyourViewCellxx));  

我通过使用一个字符串属性来保存图像的路径而不是ImageSource对象来修复这个问题。必须使用ListView和ViewCell OnAppearing事件进行一些缓存。但纯文本属性似乎可以正确加载。您可以回答自己的问题,以便对其他人也有用。我也有同样的问题,但绑定到的属性已经是字符串。我认为这是因为本机行(例如iOS上的UITableViewCell)正在被重用。您确定您对ImageSource->string所做的更改修复了该问题吗?因为将图像url分配给image.Source属性意味着实际上将创建一个ImageSource值。