Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免在组合框中获得重复项,并确保组合框始终获得它们应该获得的值?_C#_Forms_Combobox_Iteration_Datasource - Fatal编程技术网

C# 如何避免在组合框中获得重复项,并确保组合框始终获得它们应该获得的值?

C# 如何避免在组合框中获得重复项,并确保组合框始终获得它们应该获得的值?,c#,forms,combobox,iteration,datasource,C#,Forms,Combobox,Iteration,Datasource,我使用了以下链接,但它不起作用 数据如下: 打印机,爱普生,T200 大型机,IBM,z15 大型机,Del,X99 这些信息来自一个数据库,但都在那里并经过测试,所以我忽略了不相关的代码 所以我有两个问题。第一个是EquipmentType组合框 重复值。我有两个大型机,所以它显示了两次大型机。 第二个问题是,如果我通过EquipmentType组合框, 并返回到以前的值,设备模型在打开之前不会更新 “设备名称”组合框实际单击一个条目 private void Client_Maintena

我使用了以下链接,但它不起作用

数据如下:

打印机,爱普生,T200

大型机,IBM,z15

大型机,Del,X99

这些信息来自一个数据库,但都在那里并经过测试,所以我忽略了不相关的代码

所以我有两个问题。第一个是EquipmentType组合框 重复值。我有两个大型机,所以它显示了两次大型机。 第二个问题是,如果我通过EquipmentType组合框, 并返回到以前的值,设备模型在打开之前不会更新 “设备名称”组合框实际单击一个条目

private void Client_Maintenance_Load_1(object sender, EventArgs e)

{

    cmbicEquipmentType.DataSource = equip;
    cmbicEquipmentType.DisplayMember = "EquipmentType";

    cmbicEquipmentName.DataSource = equipmentName;
    cmbicEquipmentModel.DataSource = equipmentModel;
}

private void cmbicEquipmentType_SelectedIndexChanged(object sender, EventArgs e)

{

    nameSource.Clear();
    foreach (Equipment item in equip)
        {
            if (item.EquipmentType == cmbicEquipmentType.Text)
                {
                    nameSource.Add(item.EquipmentName);
                    cmbicEquipmentName.SelectedIndex = 0;
                }               

        }
    nameSource.DataSource = null;
    nameSource.DataSource = equipmentName;
    cmbicEquipmentName.DataSource = nameSource;
    cmbicEquipmentName.Update();
    cmbicEquipmentName.Refresh();
}

private void cmbicEquipmentName_SelectedIndexChanged(object sender, EventArgs e)

{

    nameSource2.Clear();   
    foreach (Equipment item in equip)
        {
            if (item.EquipmentName == cmbicEquipmentName.Text)
                {
                    nameSource2.Add(item.EquipmentModel);
                    cmbicEquipmentModel.SelectedIndex = 0;
                }
            }

    nameSource2.DataSource = null;            
    nameSource2.DataSource = equipmentModel;

    cmbicEquipmentModel.DataSource = nameSource2;
    cmbicEquipmentModel.Update();
    cmbicEquipmentModel.Refresh();

}
这是显示重复项的组合框

设备型号不更新

先谢谢你

if (!cmbicEquipmentType.Items.Contains(item.EquipmentType.ToString()))
                    {
                        cmbicEquipmentType.Items.Add(item.EquipmentType.ToString());
                    }

这解决了复制问题。我调整了我的程序,使第二个问题看起来像是应该发生的

请检查这将有助于提高你的内容质量upI检查了链接,但我仍然不清楚。我是输入了太多的代码还是太少的代码?我尽量保持代码的相关性。