AllowUserToAddRows не работает с со Списком <> Источник данных на DataGridView

У меня есть a DataGridView с DataSource набор к List<myClass>

Однако новый индикатор строки не отображается, когда я установил AllowUserToAddRows кому: true,

Когда я установил DataSource кому: BindingList<myClass>, это, кажется, решает проблему.

Q: Должен заменить мой List<> с BindingList<> или существует лучшее решение?

13
задан KyleMit 13 November 2019 в 22:17
поделиться

1 ответ

Имеется ли в myClass общедоступный конструктор без параметров? Если нет, вы можете унаследовать от BindingList и переопределить AddNewCore , чтобы вызвать собственный конструктор.

(изменить) В качестве альтернативы - просто оберните свой список в BindingSource , и это может сработать:

using System;
using System.Windows.Forms;
using System.Collections.Generic;
public class Person {
    public string Name { get; set; }

    [STAThread]
    static void Main() {
        var people = new List<Person> { new Person { Name = "Fred" } };
        BindingSource bs = new BindingSource();
        bs.DataSource = people;

        Application.Run(new Form { Controls = { new DataGridView {
            Dock = DockStyle.Fill, DataSource = bs } } });
    }
}
22
ответ дан 1 December 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: