首页 > 解决方案 > 是否可以在 datagridview 中放置/绑定字典并使其可编辑?

问题描述

我有一个包含以下限制的嵌套字典:Dictionary<double, Dictionary<double, double>>。数据格式为:Dictionary<Frequency, Dictionary<Min, Max>>。

我想将此字典绑定到 datagridview。第一个键永远不会有多个值(字典),同样适用于子字典。

我的 datagridview 中有三列,我想将字典绑定到它。三列是频率、最小值、最大值。我希望主字典中的每个键都是一个新行,并且该频率的最小值和最大值将来自键值。这可能吗?

其次,何时实现。我希望用户能够使用新的频率值和新的最小最大值插入新行。由于它绑定到字典,字典也将具有这个新条目/行。

我只写了 2-3 个月的代码,然后就掉进了兔子洞。这可以用winforms吗?

标签: c#winformsdictionarydatagridview

解决方案


我不明白你为什么需要字典。
您可以将数据结构建模为单个类,而不是将其很好地绑定到 datagridview。

public class Frequency
{
    public double Value { get; set; }
    public double Min { get; set; }
    public double Max { get; set; }
}

然后在表单构造函数中,例如:

private BindingList<Frequency> _frequencies;

public MyForm()
{
    var frequency1 = new Frequency { Value = 1, Min = 0, Max = 3 };
    var frequency2 = new Frequency { Value = 1, Min = 0, Max = 3 };
    var frequency3 = new Frequency { Value = 1, Min = 0, Max = 3 };

    _frequencies = new BindingList<Frequency>
    {
       .AllowNew = true,
       .AllowEdit = true,
       .AllowRemove = false,
    };

    _frequencies.Add(frequency1);
    _frequencies.Add(frequency2);
    _frequencies.Add(frequency3);

    myDataGridView.DataSource = frequencies;
}

推荐阅读