#wpf #datagrid #editmode
#wpf #datagrid #режим редактирования
Вопрос:
Я использую datagrid для отображения координат «прямоугольников выделения», которые пользователь может создать на изображении.
Я использую привязку таблицы данных к наблюдаемой коллекции, поскольку координаты также необходимы для других целей.
Итак, когда пользователь создает новый прямоугольник, в наблюдаемую коллекцию добавляется новая запись.
Чтобы напрямую отобразить координаты нового прямоугольника в datagrid, я должен вызвать «myDatagrid.Товары.Обновить ()».
Теперь проблема в том, что в некоторых случаях программа завершается с ошибкой «Исключение недопустимой операции», в котором говорится, что обновление () не может быть выполнено «во время выполнения AddNew или EditItem — транзакции» в datagrid.
Я точно не знаю, где запускаются эти транзакции, но я заметил, что исключение возникает только тогда, когда курсор мыши был активен в одной ячейке datagrid в момент, когда вызывается Refresh() .
Так что было бы несколько возможных подсказок, которые действительно помогли бы мне:
- Как я могу «вручную» отменить режим редактирования для всех ячеек datagrid? (конечно, я пробовал DataGrid.CancelEdit() и DataGrid.CommitEdit(), но это не помогает)
- Что такое EditItem-Transaction / AddItem-Transaction или как я могу остановить ее выполнение?
- Любые другие идеи по безопасному обновлению привязки без использования DataGrid.Refresh() ..