我通过这种方式将信息与itemsource绑定
public class Items
{
public BitmapImage Content {get; set;}
}
ObservableCollection<Items> data = new ObservableCollection<Items>();
void load()
{
foreach(item in myList)
{
data.Add(new Items{ Content = new BitmapImage(new Uri(item, UriKind.Abslote)) });
cover.ItemSource = data;
}
}
myList 包括数千个项目,计算和显示这些项目需要一些时间当然,我试图在Dispatcher的帮助下立即显示更改
foreach (var item in myList)
{
Dispatcher.Invoke(() =>
{
data.Add(new Items{ Content = new BitmapImage(new Uri(item, UriKind.Abslote)) });
cover.ItemSource = data;
}, DispatcherPriority.Background);
}
但是我认为这不是一个好方法。你可以引导我吗?
答案 0 :(得分:0)
首先使用Dispatcher
不会立即显示更改。您可以了解有关here
对于您来说,您不需要在ItemsSource
循环内更新foreach
。由于是ObservableCollection
,对集合的更改应在您的用户界面中自动更新。
foreach (var item in myList)
{
data.Add(new Items{ Content = new BitmapImage(new Uri(item, UriKind.Abslote)) });
}
cover.ItemSource = data;