Я использую сетку данных для отображения координат «прямоугольников выбора», которые пользователь может создать на изображении.
Я использую привязку данных сетки данных к наблюдаемой коллекции, поскольку координаты также необходимы для других целей.
Итак, когда пользователь создает новый прямоугольник, в коллекцию Observable добавляется новая запись.
Чтобы напрямую отобразить координаты нового прямоугольника в сетке данных, мне нужно вызвать «myDatagrid.Items.Refresh ()».
Проблема теперь в том, что в некоторых случаях происходит сбой программы с «Исключением недопустимой операции», в котором говорится, что невозможно выполнить Refresh () «при выполнении AddNew или EditItem - Transaction» в сетке данных. 1009 *
Я не знаю точно, где инициируются эти транзакции, но я заметил, что исключение возникает только тогда, когда Mouse-Courser был активен в одной ячейке сетки данных в тот момент, когда вызывается функция Refresh ().
Так что будут некоторые возможные подсказки, которые действительно помогут мне:
- Как я могу «вручную» отменить режим редактирования для всех ячеек сетки данных?
(конечно, я пробовал DataGrid.CancelEdit () и DataGrid.CommitEdit (), но это не помогает)
- Что такое EditItem-Transaction / AddItem-Transaction или как я могу остановить его выполнение?
- Любые другие идеи для безопасного обновления привязки без использования DataGrid.Refresh () ..