Невозможно изменить какие-либо столбцы в моем C # DataGridView - кто-нибудь знает почему? - PullRequest
4 голосов
/ 23 октября 2010

Я пытаюсь включить редактирование для ряда столбцов в моем DataGridView. Теперь перед любыми предложениями я должен прочитать статью MSDN: Как: Указать режим редактирования для элемента управления DataGridView Windows Forms , у меня уже есть.

В итоге (и я цитирую):

  • Базовый источник данных поддерживает редактирование.
  • Элемент управления DataGridView включен.
  • Значение свойства EditMode не является EditProgrammatics.
  • Все свойства ReadOnly ячейки, строки, столбца и элемента управления имеют значение false.

Все это простой и здравый смысл. Я подтвердил, что Enabled = true. Я подтвердил, что EditMode равен EditOnKeystrokeOrF2 Я подтвердил, что все столбцы (кроме одного) ReadOnly = false.

Что мне кажется интересным, так это первая строка: -

Базовый источник данных поддерживает редактирование.

Теперь я привязываю данные к DGV: -

// Grab all the Foos.
var foos = (from x in MyRepository.Find()
            select new
                      {
                          x.Foo1,
                          x.Foo2,
                          ...
                          x.FooN
                       }).ToList();

// Now lets bind this result to the GridView.
dataGridView2.DataSource = foos;

Который я считал правильным способом ..

То, что я планировал сделать, было, когда ячейка изменилась, и пользователь затем покинул ячейку, вот где я планировал получить данные, которые только что были изменены (выяснить это вручную) и затем вручную обновите БД.

Это правильный способ делать вещи?

Ответы [ 2 ]

4 голосов
/ 23 октября 2010

В этом случае базовый источник данных не поддерживает редактирование, поскольку свойства анонимных типов доступны только для чтения. Согласно спецификации языка C #:

Члены анонимного типа - это последовательность свойств только для чтения, выведенных из инициализатора анонимного объекта, который используется для создания экземпляра типа.

Вместо этого вы можете определить класс отображения с редактируемыми свойствами для значений, которые вы хотите отобразить, и создать экземпляры этого класса.

2 голосов
/ 20 декабря 2012

У меня была эта проблема с несвязанным DGV.Я исправил это, установив свойство ReadOnly каждой строки.И DGV, и столбцы не были ReadOnly, но строки как-то устанавливались как R / O, возможно, когда я устанавливал их с использованием коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...