Я устанавливаю некоторые свойства DataGridViewCell
на основе значений, хранящихся DataGridViewRow.DataBoundItem
, например:свойство Binding клеток к DataBoundItem
DataGridViewRow row;
MyObject obj = row.DataBoundItem as MyObject;
row.Cells["MyCell"].ReadOnly = !obj.CanBeEdited;
Прямо сейчас я злоупотребляяRowPrePaint
события, чтобы установить эти вверх, но проблема что объекты, отображаемые в datagrid, меняются из другого потока, и мне нужны эти свойства, заданные правильно, без перерисовки (например, выбор нескольких экранов строк и редактирование нескольких значений).
Вопрос: Каков надлежащий способ привязки свойств DataBoundItems к свойствам Cell?
Есть ли способ (например, DataGridView.InvalidateRow
), где функциональность должна быть реализована??
попробуйте установить 'row.Cells [«MyCell»] ReadOnly' в сетке' обработчик события CellEnter':. Вы включить или отключить редактирование только, прежде чем кто начал редактировать – ASh
@ASh я обеспечиваю всплывал для пользователя в заполнить комментарий к каждому элементу и работать как 'foreach (строка в dgv.SelectedRows) {if (row.Cells [" Comment "]. ReadOnly) {продолжить;} ...}' – Vyktor
cell.ReadOnly включает/отключает редактирование для этого клетка. я не понимаю, зачем это нужно для чего-то другого. как для вашего фрагмента: 'foreach (строка DataGridViewRow в dgv.SelectedRows) {MyObject obj = row.DataBoundItem как MyObject; if (! obj.CanBeEdited) {continue;} ...} 'возможно – ASh