【发布时间】:2020-01-31 15:00:37
【问题描述】:
我正在尝试从 JSON 文件中的链接加载照片。我正在反序列化链接中的 JSON,并将链接绑定到这样的图像源:
<Image HorizontalOptions="Center" Source="" x:Name="foto"
WidthRequest="200" HeightRequest="200"/>
这是我的代码:
foto.Source = Zdjecie;
Zdjecie 是 JSON 文件中的值,如下所示:
[
{
"Nazwa": "Czekolada mleczna Sport & Fitness",
"Opis": "Przykładowy opis produktu Czekolada mleczna Sport & Fitness",
"Zdjecie": "https://interactive-examples.mdn.mozilla.net/media/examples/grapefruit-slice-332-332.jpg",
"WW": 0.28,
"WBT": 0.22,
"Energia": 31.8125,
"Tluszcz": 2.19375,
"Weglowodany": 3.225,
"Blonnik": 0.11875,
"Bialko": 0.45625,
"Zelazo": 0.1875,
"Wapn": 15.5
},
{
"Nazwa": "Czekolada mleczna Sport & Fitness2",
"Opis": "Przykładowy opis produktu Czekolada mleczna Sport & Fitness2",
"Zdjecie": "https://kif.pl/www/wp-content/uploads/2015/05/chocolate_PNG27-620x413.png",
"WW": 0.16,
"WBT": 0.21,
"Energia": 28.5625,
"Tluszcz": 2.19375,
"Weglowodany": 2.94375,
"Blonnik": 0.4875,
"Bialko": 0.34375,
"Zelazo": 0.8125,
"Wapn": 0
}
]
我认为一切都很好,但没有一张照片正在加载我也尝试过使用:
foto.Source = new UriImageSource()
{
img = new Uri(Zdjecie);
}
但这也不起作用。
【问题讨论】:
-
你需要使用https或者添加一个例外来允许http
-
@Jason 我尝试使用 https 但它仍然没有显示任何内容
-
您确定返回的 JSON 有效并且具有您向我们展示的结构吗?更多:您是否在加载后将
Image绑定上下文设置为 json 对象?如果不是,图像控件如何知道Zdjecie包含什么?另请注意,json对象不继承INotifyPropertyChange接口,所以如果在运行时更改Zdjecie属性,图像不会自动更新! -
您的 ViewModel 属性也是 Uri 还是 UriImageSource ?检查这个stackoverflow.com/questions/40579372/…
-
当我将 viewModel 属性设置为 Uri(来自字符串)
public Uri Zdjecie { get; set; }时,当我单击列表中的项目以打开详细信息时显示此错误System.ObjectDisposedException: 'Can not access a closed Stream.'我现在使用的代码是:var imageSource = new UriImageSource { Uri = new Uri(Zdjecie.ToString()) }; imageSource.CachingEnabled = false; imageSource.CacheValidity = TimeSpan.FromHours(1); foto.Source = imageSource;
标签: c# xamarin xamarin.forms