我花了最近3天的搜索方式,以避免在设置itemscontrol的itemsource时冻结主(UI)线程,但是没有成功。我有itemsControl名为items_control并设置itemsource如下
items_control.ItemsSource = await GetItems();
和GetItems方法
public async Task<ObservableCollection<UserControl>> GetItems()
{
ObservableCollection<UserControl> items = new ObservableCollection<UserControl>();
for (int i = 0; i < 40; i++)
{
items.Add(new MyUserControl());
}
return items;
}
MyUserControl是我自己的控件,包含一些文本和计算。通过将itemsPanel替换为virtualizedStackPanel来虚拟化ofc ItemsControl。