Страницы

Поиск по вопросам

понедельник, 8 апреля 2019 г.

Изменяя значение DataGrid в другом потоке

Есть DataGrid, в него заношу новый объект. Если я в основном потоке получаю ссылку на первый Item у DataGrid, привожу его к типу и изменяю свойства, то и значения в таблице тоже меняются. Но если же я создаю новый поток и в нем проделываю тоже самое, ничего не получается. Даже если я проделываю это через BeginInvoke
RobotsInfo ri = (RobotsInfo)dataGrid.Items[0]; ri.Name = "AAA";
Данный код в основном потоке изменяет значение в таблице на AAA, а если сделать тоже самое в другом потоке, то ничего не получается. Как можно решить это?


Ответ

Попросите Dispatcher выполнить эти действия в "правильном" потоке:
dataGrid.Dispatcher.Invoke(() => { RobotsInfo ri = (RobotsInfo)dataGrid.Items[0]; ri.Name = "AAA"; });

Комментариев нет:

Отправить комментарий