次のようなことをしているとします
List<string> myitems = new List<string>
{
"Item 1",
"Item 2",
"Item 3"
};
ComboBox box = new ComboBox();
box.DataSource = myitems;
ComboBox box2 = new ComboBox();
box2.DataSource = myitems
これで、2 つのコンボ ボックスがその配列にバインドされ、すべて正常に動作しました。ただし、1 つのコンボ ボックスの値を変更すると、両方のコンボ ボックスが選択したものに変更されます。
今、私は配列が常に参照によって渡されることを知っています (私が C :D を学んだときにそれを学びました)、一体なぜコンボ ボックスが一緒に変更されるのでしょうか? コンボ ボックス コントロールがコレクションをまったく変更しているとは思えません。
回避策として、これは期待/望ましい機能を達成しないでください
ComboBox box = new ComboBox();
box.DataSource = myitems.ToArray();