When i try to show images in a radlistview, i get these exceptions.
No exceptions when using the xamarin listview, nor when commenting out the image from the template
xaml code :
<telerikDataControls:RadListView
IsLoadOnDemandEnabled="True"
ItemsSource="{Binding Articles}"
LoadOnDemandMode="Automatic" >
<telerikDataControls:RadListView.LayoutDefinition>
<telerikListView:ListViewGridLayout ItemLength="100" VerticalItemSpacing="1" HorizontalItemSpacing="1" />
</telerikDataControls:RadListView.LayoutDefinition>
<telerikDataControls:RadListView.ItemTemplate>
<DataTemplate>
<telerikListView:ListViewTemplateCell>
<telerikListView:ListViewTemplateCell.View>
<StackLayout >
<Image Source="{Binding Image}" />
<Label Text="{Binding ArtNr}"/>
</StackLayout>
</telerikListView:ListViewTemplateCell.View>
</telerikListView:ListViewTemplateCell>
</DataTemplate>
</telerikDataControls:RadListView.ItemTemplate>
</telerikDataControls:RadListView>
Viewmodel:
public class ArticleViewModel:BaseViewModel
{
public string ArtNr { get; set; }
public ImageSource Image { get; set; }
public ArticleViewModel(string artnr, string url)
{
this.ArtNr = artnr;
Image = new UriImageSource
{
Uri = new Uri(url),
CachingEnabled = false,
CacheValidity = new TimeSpan(7, 0, 0, 0)
};
}
}
public class CatalogueViewModel : BaseViewModel
{
const int nrofitemstoload = 10;
int loadTriggerCount;
public ListViewLoadOnDemandCollection Articles { get; set; }
public CatalogueViewModel() : base()
{
Articles = new ListViewLoadOnDemandCollection(loadondemand);
var artvms = getarticles(loadTriggerCount * nrofitemstoload);
foreach (var art in artvms)
{
Articles.Add(art);
}
Title = "Catalogus";
}
IEnumerable<ArticleViewModel> getarticles(int start)
{
var x = new List<ArticleViewModel>();
for (int i = start; i < start + nrofitemstoload; i++)
{
x.Add(new ArticleViewModel($"article{start}_{i}", $"http://www.adsolut.be/images/website/logo.png?start={start}&stop{i}"));
}
return x;
}
IEnumerable<ArticleViewModel> loadondemand(CancellationToken token)
{
loadTriggerCount++;
if (token.IsCancellationRequested)
return new List<ArticleViewModel>();
var articles = getarticles(loadTriggerCount * nrofitemstoload);
return articles;
}
}