ListBoxを使ったプログラムを書いてテストしていたところ、ListBoxの項目を選択したときに例外が発生。次のようなエラーが。
「この列挙子がバインドされている一覧は変更されています。列挙子は、一覧が変更しない場合に限り使用できます。」
たしかにListBoxに登録されたオブジェクトを列挙子を使っていたけど、特に値を変更するようなコードは書いていないはずだけど。
foreach (int item in listBox1.Items) { if (listBox1.SelectedIndex >= 0) { ... } }
どうやら、foreachのループ内でSelectedIndexプロパティを参照しているのが問題らしい。値を取るだけなら問題ないと思ったけど、駄目なのかな。
と、ここまで書いておいてさらに調べてみたところ、この処理をSelectedIndexChangedイベントで呼び出しているのが問題らしい。選択したという情報がループの処理中に起こってしまうのだろうが。