画像とテキストをバインドするリストボックスがあります。15 個の項目を追加しても問題ありませんが、20 個以上の項目を追加すると System.IndexOutOfRangeException が発生します。リストボックスが32kbしか保存できない場所を見つけたので、リストビューを使用しようとすると、同じ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;
}