0

私はwinformに2つのコンボボックスを持っています。両方のコンボボックスは、以下のリストによってロードされます。すべてが正常に動作します。ただし、Combobox1の値を変更すると、combobox2...の値も変更されます。他のコンボボックスでも同じです。コンボボックス2で値を変更すると、コンボボックス1で値が変更されます。

どちらも同じ値のリストを使用する必要があります。これが、同じリスト(_item)にバインドする理由です。

では、2つのコンボボックスを互いに切り離すために何をする必要がありますか?

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

            combobox2.DataSource = _item;
            combobox2.DisplayMember = "AccountNumber";
4

3 に答える 3

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

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

また

IList<CompteGeneral> _item = new List<CompteGeneral>(compt_repository.GetAll);
BindingSource source=new BindingSource();
source.DataSource=_item ;
BindingSource source1=new BindingSource();
source1.DataSource=_item ;


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

combobox2.DataSource = source1;
combobox2.DisplayMember = "AccountNumber";

于 2013-03-27T10:17:32.897 に答える
1

コンストラクターにを渡して、同じアイテムで新しいリストを作成します_item1

新しいリストを2番目のコンボボックスに割り当てます。

        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";
于 2013-03-27T10:20:48.173 に答える
1

ICloneable上のインターフェイスからCloneメソッドを実装しますCompteGeneral

  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";

また、オブジェクトのクローンを作成するときに、ShallowCopyおよびDeepCopyパラダイムを検索します。

于 2013-03-27T11:03:52.630 に答える