我有绑定图像+文本的列表框。当我添加 15 个项目时没有问题,但是当我添加更多项目 20 和更多时,我得到 System.IndexOutOfRangeException。我发现某个地方的列表框只能存储 32kb,所以我尝试使用 listview 并得到相同的 System.IndexOutOfRangeException。我在这里使用 ObservableCollection 可能会溢出,或者有人知道为什么我会得到 System.IndexOutOfRangeException?将项目添加到列表框时出现此异常。
private ObservableCollection<BindingData> _rsMessages = new ObservableCollection<BindingData>();
public ObservableCollection<BindingData> RSMessages
{
get { return _rsMessages; }
set { _rsMessages = value; }
}
public void initializeListboxRS()
{
foreach (var items in UniDB.returnListOfRSItems())
{
_rsMessages.Add(new BindingData
{
rssMessageText = items.tile,
rssMessageDateTime = items.dateTime.ToString("dd.MM.yyyy - hh:mm"),
rssMessageImage = ByteArrayToBitmapImage(items.image),
rssMessageLink = items.link
});
OnPropertyChanged("RSMessages");
}
}
private BitmapImage ByteArrayToBitmapImage(byte[] byteArray)
{
BitmapImage bitmapImage = new BitmapImage();
InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream();
ms.WriteAsync(byteArray.AsBuffer()); //exception here
ms.FlushAsync().AsTask().Wait();
ms.Seek(0);
bitmapImage.SetSource(ms);
return bitmapImage;
}