Как добавить новую строку в представление данных без использования набора данных или данных? - PullRequest
0 голосов
/ 05 августа 2009

Я использую List для привязки к dataGridView. Я бы хотел, чтобы пользователь мог добавить новую строку.

Я пытался использовать BindingList и BindingSource.

Вот мое связывание (не включая столбец со списком, который я добавляю в таблицу данных перед добавлением источника данных:

binding = new BindingSource();
binding.DataSource= _Rows;
_dg.DataSource = binding; 

Вот код, который заполняет _Rows

protected override List<BusinessApp> getRows(DataGridViewManager manager)
    {
        var dc = manager.dc.DcHerb;
        return (from p in dc.apps
                where p.zQueueId == this.ZQueueId
                select p)
                      .ToList().ToBusinessApp(dc);
    }

Вот что я пытаюсь получить новый ряд. Никаких исключений не происходит, но dataGridView, похоже, не меняется вообще, хотя число _Rows изменяется с 68 до 69

private void newRow()
    {

        _Rows.Add(new BusinessApp(_manager.dc.DcHerb, new app() {acaps="1234"  }));

        //_dg.DataSource = binding; //tried rebinding here
        //_dg.DataSource = _Rows;
    }

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Как насчет вызова метода "AddNew ()" для вашей переменной-члена "binding", которую вы уже определили?

binding.AddNew();
// and set the needed columns...
((binding.Current.Row) as <yourTypedDataTableRow>).<columnName> = <someValue>;
0 голосов
/ 02 октября 2009

Я бы сделал так, как будто у вас есть привязка какого-либо внешнего ключа к другой таблице или нет, если да, вы можете назначить ключ новой добавленной строке, и на сетке данных будет показана текущая новая добавленная строка. В противном случае вы также можете пропустить код datagrid.EndEdit ()

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