2

Windowsフォームのデータバインディングを使用して、コンボボックスをViewModelクラスに接続しようとしています。

var items = new BindingList<Person>();
comboBox.DataSource = items;
comboBox.DisplayMember = "Name";

リストからアイテムを削除する場合を除いて、すべて正常に動作します。たとえば、現在選択されているアイテム (コンボボックスで選択されている) を削除すると、コンボボックスの selectedIndexChanged イベントと SelectedValueChanged イベントは発生しません。

4

1 に答える 1

4

答えが見つかりました。仲介者として BindingSource を使用する必要がありました

  var bindingsSource = new BindingSource();
  bindingsSource.DataSource = new BindingList<Person>();
  comboBox1.DataSource = bindingsSource;
  comboBox1.DisplayMember = "Name";

このようにして、値が変更されたイベントを取得し、何かを削除したときに複数のイベントを取得します。

于 2011-09-14T17:37:09.720 に答える