gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 04:11:01 24 4
gpt4 key购买 nike

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

我还尝试将 DataGridView 源直接设置为有序字典集合(键或值)之一,但这也没有产生我想要的结果;列仍然是空白的。但是,第三列的列名称为“length”,并显示 ICollection 中条目的长度。但不用说,我不想要长度,我想要条目本身。

这是我用于此问题的代码:加载表单后,我加载了配置文件,一个名为 m_Settings 的私有(private)成员拥有所有键值对。然后我创建一个列表并分别添加键和值。将绑定(bind)源设置为“数据”后,我运行该程序,我添加的两列都是空白的。

    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();
}

关于如何获取有序字典并在标有“设置”和“值”的两列中显示条目的任何想法?我相信列表是 DataGridView 的兼容数据源,但现在我开始怀疑自己。

非常感谢任何帮助或指导!如果需要,我很乐意提供更多信息。

谢谢!

编辑:

这里是修改后的代码,实现了 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;
}
}

但是,当我将绑定(bind) 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 类型公开绑定(bind)机制可以使用的属性。

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


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

尝试构建一个接受一个键和一个值的类型,然后一个一个地添加它。希望这会有所帮助。

关于c# - 使用列表作为 DataGridView 的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com