通过BindingList

时间:2016-04-15 15:29:11

标签: c# datagridview bindinglist

我只能从(在这个例子中)对象“Person”中获取字符串属性来填充datagridview单元格(每行一个对象)。但我需要使用属于属性的多个值(多个单元格)动态创建这些属性,这些属性与DataGridView的DataPropertyName中定义的名称相同。像这样:

原因是我需要将一个对象绑定到每一行以便以后操作它。我试图使用Array,但DataGridView DataPropertyName中的每个单元格都需要一个带有名称的属性。导致一个单元格包含文本“String [] Array”。我也不知道是否或如何将DataPropertyName放在数组中,后跟单元格值。

可以在这里使用词典,还是别的什么?

public Form1()
{
    InitializeComponent();

    this.ColumnId.DataPropertyName = "Id";
    this.ColumnFirstName.DataPropertyName = "FirstName";

    List <Person> list = new List<Person>();
    list.Add(new Person());

    BindingList<Person> persons = new BindingList<Person>(list);
    persons.AllowNew = true;

    this.dataGridView1.DataSource = persons;
    dataGridView1.AllowUserToAddRows = true;
}

Person类(代码只是一个例子):

public class Person
{
    private Dictionary<string, string> lista = new Dictionary<string, string>();
    public Person()
    {
        lista.Add("Id", "Identifikator");
        lista.Add("FirstName", "Fornavn");
    }
    public Dictionary<string, string> Lista
    {
        get
        {
            return lista;
        }
        set
        {
            lista = value;
        }
    }
}

0 个答案:

没有答案