Редактирование ячеек в сетке данных типа win с источником данных типа var - PullRequest
1 голос
/ 16 января 2012

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

public partial class Example: Form
{
    DataTable edtable = new DataTable();
    DbHelper db;

    public Example()
    {
        InitializeComponent();
        db = new DbHelper("dbname", "dbid", "dbpassword");
        var cmd = db.GetCommand(
"Select ED.ID, ED.Name, ED.Code from EXAMPLETABLE ED Join (Select trim(code) as code, count(code) as codecount from exampletable group by trim(code)) X ON X.codecount > 1 and ED.Code like X.Code || '%'"
        ); 
        edtable = db.ExeGetDataTable(cmd);
        dataGridView1.DataSource = edtable;
    }               
}

Когда я запускаю свое приложение, моя сетка данных заполняется edtable, который содержит содержимое, полученное с помощью запроса.Однако я не могу редактировать какие-либо значения в них.Я щелкаю по ячейкам, и они выглядят так, как будто значения только для чтения, хотя я специально установил режим редактирования для редактирования.

Это из-за моего источника данных?Если так, как я могу сделать мои значения редактируемыми?

Спасибо!

1 Ответ

0 голосов
/ 17 января 2012

Я думаю, вы уже поняли это в своем последнем комментарии. Я знаю, что при привязке к источнику данных, если вы привязываете к свойству только для чтения, ячейки в DataGridView будут доступны только для чтения, независимо от того, какие EditMode или ReadOnly или любые другие его свойства установлены в. Я не привязал ни один из DataTable объектов, которые вы используете, но я знаю, что когда вы связываетесь с объектом класса со свойствами { get; }, они доступны только для чтения в сетке, тогда как свойства { get; set; } редактируемые.

Ожидаете ли вы, что при редактировании значений в сетке значения будут обновляться в базе данных? Если это так, я уверен, что вам нужно нечто большее, чем объект, заполненный простым оператором SELECT. То, как вы атакуете это, будет зависеть от того, что вы ожидаете от значений, отредактированных в сетке.

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