gpt4 book ai didi

c# - 如何使组合框显示字典列表并根据所选值执行操作?

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:46 24 4
gpt4 key购买 nike

C#/Winforms 程序。

我有以下包含我的词典的类:

    public class DictionaryInit
{
public Dictionary<int, DictionaryCheckup> C = new Dictionary<int, DictionaryCheckup>()
{
{1000, new DictionaryCheckup {theGrouping="C"}},
{100, new DictionaryCheckup {theGrouping="C"}},
};
}

其中 DictionaryCheckup 是一个获取;设置;一个字符串 theGrouping。

在类里面,我有从 C 到 T 的字母,我想在组合框中显示它们的值。这是我试过的:

        var theDictionaries = new DictionaryInit();
List<Dictionary<int, DictionaryCheckup>> Dictionaries = new List<Dictionary<int, DictionaryCheckup>> { theDictionaries.C, etc };
cmbDictionList.DataSource = new BindingSource(Dictionaries, null);

运行此命令会用 [Collection] 填充框。

过程和预期结果:

想法是,用户首先从组合框中选择字典 (C-T),然后将值保存到变量中。然后我有以下代码将使用它:

            OFD.ShowDialog();
var theDict = new DictionaryInit();
if (OFD.FileName != null)
{
using (var stream = new StreamReader(File.OpenRead(OFD.FileName)))
{
// Read our JSON from the file
var json = stream.ReadToEnd();
theDict.E = JsonConvert.DeserializeObject<Dictionary<int, DictionaryCheckup>>(json);
var files = new Dictionary<string, Dictionary<int, DictionaryCheckup>>();
}
}

正如您在我当前的流程中所见,我明确声明了 theDict.E。我希望能够用我之前从组合框中选择的变量替换它,这样我就可以选择我序列化/反序列化的字典。

  1. 我希望能够以某种方式使用我的 DictionaryInit 类作为组合框的数据源。

  2. 选择的值将决定我将在后面的方法中序列化的字典。

最佳答案

如果 DictionaryInit.C 中的所有 DictionaryCheckup 都有相同的字母,我会这样做:

  1. 将 Letter 属性添加到 DictionaryInit
  2. 绑定(bind)组合框到列表
  3. 设置ComboBox的DisplayMember = "Letter"

代码:

    public class DictionaryInit
{
public string Letter { get; private set; }

public DictionaryInit(string letter)
{
this.Letter = letter;
C = new Dictionary<int, DictionaryCheckup>()
{
{1000, new DictionaryCheckup {theGrouping=letter}},
{100, new DictionaryCheckup {theGrouping=letter}},
};
}
public Dictionary<int, DictionaryCheckup> C { get; private set; }
}

var list = new List<DictionaryInit>();
list.AddRange(new[]{new DictionaryInit("C"), new DictionaryInit("D")});
cmbDictionList.DataSource = list;
cmbDictionList.DisplayMember = "Letter";

关于c# - 如何使组合框显示字典列表并根据所选值执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44537235/

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