c# – 使用列表作为DataGridView的数据源

我将设置名称及其各自的值从配置文件中提取到有序字典中.该字典包含ICollection类的键和值.我想绑定该数据并显示在DataGridView中.我尝试将字符串复制到数组并显示这些数组,但是当我运行程序时,这些列是空白的,它似乎根本没有绑定.

我还试图将DataGridView源直接设置为一个有序字典集合(键或值),但这也没有导致任何我想要的东西;列仍然为空.但是,第三列的列名称为“length”,并显示ICollection中条目的长度.但不用说,我不想要长度,我想要的条目本身.

以下是我用于此问题的代码:加载表单后,我加载配置文件,名为m_Settings的私有成员具有所有键值对.然后我创建一个列表,并分别添加键和值.将绑定源设置为“data”后,我运行该程序,我添加的两列都是空白的.

    private void Form4_Load(object sender, EventArgs e)
    {
        loadconfigfile(Properties.Settings.Default.Config);
        List<Object> data = new List<Object>();
        data.Add(m_Settings.Keys);
        data.Add(m_Settings.Values);
        bindingSource1.DataSource = data;
        dataGridView1.DataSource = bindingSource1;
        dataGridView1.Refresh();
    }

任何关于如何获得有序字典并在两栏“设置”和“值”中显示条目的想法?我相信列表是DataGridViews的DataSources兼容的,但现在我开始猜测自己.

任何帮助或方向非常感谢!如果需要,我会很乐意提供更多的信息.

谢谢!

编辑:

这是修改后的代码与实现的myStruct类:

    List<myStruct> list = new List<myStruct>();
    for(int index = 0; index < m_Settings.Count; index++)
    {
        myStruct pair = new myStruct(keys[index], values[index].ToString());
        list.Add(pair);
    }

    public class myStruct
    {
        private string Key { get; set; }
        private string Value { get; set; }

        public myStruct(string key, string value)
        {
            Key = key;
            Value = value;
        }
    }

但是,当我将绑定的DataDource设置为列表时,DataGridView上没有任何内容,它只是空白.任何人都知道为什么

首先,我不明白为什么你添加所有的键和值计数次数,索引从来没有使用.

我试过这个例子:

        var source = new BindingSource();
        List<MyStruct> list = new List<MyStruct> { new MyStruct("fff", "b"),  new MyStruct("c","d") };
        source.DataSource = list;
        grid.DataSource = source;

这个工作很好,我得到了两列正确的名字. MyStruct类型公开了绑定机制可以使用的属性.

    class MyStruct
   {
    public string Name { get; set; }
    public string Adres { get; set; }


    public MyStruct(string name, string adress)
    {
        Name = name;
        Adres = adress;
    }
  }

尝试构建一个需要一个键和值的类型,并逐个添加.
希望这可以帮助.

翻译自:https://stackoverflow.com/questions/6473326/using-a-list-as-a-data-source-for-datagridview

转载注明原文:c# – 使用列表作为DataGridView的数据源