WPF асинхронная привязка данных - PullRequest
0 голосов
/ 14 июля 2011

У меня есть приложение призмы WPF MVVM для загрузки файлов. Я заполнил сетку данных списком файлов из каталога и получил кнопку загрузки, чтобы загрузить выбранные файлы из сетки данных.

Для этого я передаю сетку selecteditems параметру команды кнопки. Я успешно реализовал это синхронно и теперь хочу расширить эта функциональность асинхронно с использованием делегатов.

Это мой асинхронный вызов функции:

asyncUpload.BeginInvoke(selectedFiles, out tt, new AsyncCallback(test), null);

Здесь выбранные файлы - это selecteditems из таблицы данных, переданной через параметр команды кнопки загрузки. Проблема в том, что при выполнении первого потока для загрузки я выбираю другой набор файлов из сетки данных для загрузки, который изменит выбранные файлы первого потока.

Как я могу решить это?

1 Ответ

1 голос
/ 14 июля 2011

Не передавайте фактический список SelectedItems в ваш метод BeginInvoke().

Вместо этого передайте копию списка SelectedItems.

Array[] array = new Array[dataGrid.SelectedItems.Count];

dataGrid.SelectedItems.CopyTo(array, 0);

asyncUpload.BeginInvoke(array.ToList(), out tt, new AsyncCallback(test), null); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...