Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# 当我更改combobox1时,它也会更改Combox2中的值(两者使用相同的列表)_C#_Winforms - Fatal编程技术网

C# 当我更改combobox1时,它也会更改Combox2中的值(两者使用相同的列表)

C# 当我更改combobox1时,它也会更改Combox2中的值(两者使用相同的列表),c#,winforms,C#,Winforms,我的winform上有两个组合框。两个组合框都由下面的列表加载。一切正常。除此之外,当我更改Combox1中的值时,它也会更改Combox2中的值。。。其他组合框也是如此。当我在combobox 2中更改一个值时,它在combobox 1中更改 两者都必须使用相同的值列表。这就是为什么我要绑定到同一个列表(_项) 那么,我需要做什么来将这两个组合框彼此解耦呢 IList<CompteGeneral> _item = new List<CompteGeneral>(c

我的winform上有两个组合框。两个组合框都由下面的列表加载。一切正常。除此之外,当我更改Combox1中的值时,它也会更改Combox2中的值。。。其他组合框也是如此。当我在combobox 2中更改一个值时,它在combobox 1中更改

两者都必须使用相同的值列表。这就是为什么我要绑定到同一个列表(_项)

那么,我需要做什么来将这两个组合框彼此解耦呢

   IList<CompteGeneral> _item = new List<CompteGeneral>(compt_repository.GetAll);
            combobox1.DataSource = _item;
            combobox1.DisplayMember = "AccountNumber";

            combobox2.DataSource = _item;
            combobox2.DisplayMember = "AccountNumber";
IList\u item=新列表(compt\u repository.GetAll);
combobox1.DataSource=\u项;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=\u项;
combobox2.DisplayMember=“AccountNumber”;
IList\u item=新列表(compt\u repository.GetAll);
IList\u item1=新列表(compt\u repository.GetAll);
combobox1.DataSource=\u项;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=_item1;
combobox2.DisplayMember=“AccountNumber”;

IList\u item=新列表(compt\u repository.GetAll);
BindingSource=新的BindingSource();
source.DataSource=\u项;
BindingSource1=新的BindingSource();
source1.DataSource=\u项;
combobox1.DataSource=源;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=source1;
combobox2.DisplayMember=“AccountNumber”;

IList\u item=新列表(compt\u repository.GetAll);
IList\u item1=新列表(compt\u repository.GetAll);
combobox1.DataSource=\u项;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=_item1;
combobox2.DisplayMember=“AccountNumber”;

IList\u item=新列表(compt\u repository.GetAll);
BindingSource=新的BindingSource();
source.DataSource=\u项;
BindingSource1=新的BindingSource();
source1.DataSource=\u项;
combobox1.DataSource=源;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=source1;
combobox2.DisplayMember=“AccountNumber”;

通过在构造函数中传递
\u item1
来创建具有相同项的新列表

将新列表分配给第二个组合框

        IList<CompteGeneral> _item1 = new List<CompteGeneral>(compt_repository.GetAll);

        IList<CompteGeneral> _item2 = new List<CompteGeneral>(_item1);

        combobox1.DataSource = _item1;
        combobox1.DisplayMember = "AccountNumber";

        combobox2.DataSource = _item2;
        combobox2.DisplayMember = "AccountNumber";
IList\u item1=新列表(compt\u repository.GetAll);
IList _item2=新列表(_item1);
combobox1.DataSource=\u item1;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=_item2;
combobox2.DisplayMember=“AccountNumber”;

通过在构造函数中传递
\u item1
来创建具有相同项的新列表

将新列表分配给第二个组合框

        IList<CompteGeneral> _item1 = new List<CompteGeneral>(compt_repository.GetAll);

        IList<CompteGeneral> _item2 = new List<CompteGeneral>(_item1);

        combobox1.DataSource = _item1;
        combobox1.DisplayMember = "AccountNumber";

        combobox2.DataSource = _item2;
        combobox2.DisplayMember = "AccountNumber";
IList\u item1=新列表(compt\u repository.GetAll);
IList _item2=新列表(_item1);
combobox1.DataSource=\u item1;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=_item2;
combobox2.DisplayMember=“AccountNumber”;

compegeneral

  IList<CompteGeneral> _item = new List<CompteGeneral>(compt_repository.GetAll);
            combobox1.DataSource = _item;
            combobox1.DisplayMember = "AccountNumber";

            combobox2.DataSource = _item.Select(p => p.Clone()).ToList();
            combobox2.DisplayMember = "AccountNumber";
IList\u item=新列表(compt\u repository.GetAll);
combobox1.DataSource=\u项;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=_item.Select(p=>p.Clone()).ToList();
combobox2.DisplayMember=“AccountNumber”;

克隆对象时,还可以搜索ShallowCopy和DeepCopy范例。

Compegeneral上的
IClonable
界面实现克隆方法

  IList<CompteGeneral> _item = new List<CompteGeneral>(compt_repository.GetAll);
            combobox1.DataSource = _item;
            combobox1.DisplayMember = "AccountNumber";

            combobox2.DataSource = _item.Select(p => p.Clone()).ToList();
            combobox2.DisplayMember = "AccountNumber";
IList\u item=新列表(compt\u repository.GetAll);
combobox1.DataSource=\u项;
combobox1.DisplayMember=“AccountNumber”;
combobox2.DataSource=_item.Select(p=>p.Clone()).ToList();
combobox2.DisplayMember=“AccountNumber”;

在克隆对象时,还可以搜索ShallowCopy和DeepCopy范例。

我认为这在我的情况下更有用,因为我将有15个组合框全部绑定到1个列表,而且编码更少。。。只是克隆。。。谢谢,我认为这在我的情况下更有用,因为我将有15个组合框全部绑定到1个列表,这是较少的编码。。。只是克隆。。。谢谢