У меня ListBox, связанный с ObservableCollection. Каждый элемент в коллекции обозначает отдельный шаг с методом для выполнения этого шага. То, что я хотел бы сделать, это сделать цикл BackgroundWorker через коллекцию, запустить метод действия каждого элемента и отразить текущий шаг в ListBox.
Моя первая итерация не использовала многопоточность и должна была просто запустить шаг. Теперь я создал ListCollectionView, установил его для представления данных в ObservableCollection и привязал к нему объект ItemsBource ListBox вместо ObservableCollection. Я заметил, что выполнение шагов все еще блокирует обновления потока пользовательского интерфейса, хотя я явно увеличиваю CurrentItem.
Я хочу использовать ListCollectionView внутри BackgroundWorker, но большинство примеров, которые я нахожу, написаны при условии, что вы изменяете содержимое или сортируете список. Я не хочу делать это; Я просто хочу увеличить CurrentItem для каждой итерации. Я предполагаю, что простая ссылка на него не даст мне слишком далеко, поскольку она связана с элементами в потоке пользовательского интерфейса, и компилятор будет жаловаться. Любые мысли или указатели будут высоко оценены.