Страницы

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

четверг, 11 июля 2019 г.

Drag & Drop из DataGrid WPF

Разрабатываю приложение для работы с БД SQL Server на C#/WPF.
В приложении есть форма в которой справа DataGrid и посредством Drag&Drop осуществляется перетягивание элементов в левую часть. После перетягивания, свойство элемента DataGridRow.IsEnabled устанавливается в false, чтобы его невозможно было перетянуть дважды. И вот тут возникла проблема:
После перетягивания, случайным образом (на ширину приблизительно видимой области DataGrid) элементы получают то-же свойство IsEnabled = false, что и перемещаемый элемент. Если промотать DataGrid вниз/вверх, элемент со свойством IsEnabled = false, снова становится доступным.
Подскажите, как этого можно избежать и что я делаю неверно?
А так-же, если не сложно, где можно почитать про такое поведение DataGrid (MSDN вроде весь перекопал)?


UPDATE 28.12.2015
Исправил проблему воспользовавшись советом Stack с привязкой к источнику данных.


Ответ

DataGridItem, DataGridRow - это контейнеры для данных. Если контейнер подключен к источнику данных, т.е. определен Binding, то WPF использует контейнеры повторно. Это значит, что менять прямо свойства контейнера не надо, а надо менять сам источник данных. Пример реализации drag'n'drop посмотрите в моем ответе тут

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

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