6

標準の ListBox コントロールをサブクラス化しています。リストに追加された要素の変更について通知を受けます。タスクは、変化する要素の ListBox によって表示されるテキストを更新することです。

変更された要素を削除して再度追加できることは承知していますが、これは明らかな理由から好ましくないようです。

4

2 に答える 2

16

残念ながら、のデータ バインディングは通常の (アイテム) 変更通知イベント ( / )ListViewをサポートしていません。ただし、変更について知っている場合は、リスト自体を再バインドすることができます。サブクラス化しているため、次を呼び出すことができます。FooChangedINotifyPropertyChanged

this.RefreshItems();

または単一のアイテムの場合:

this.RefreshItem(index);

それ以外の場合、これは公開されていないため、以下を変更してシミュレートできますDisplayMember

lb.DisplayMember = "";
lb.DisplayMember = "Bar";

少しハックかもしれませんが、動作し、現在の選択などを維持します( をクリアするのとは異なりますDataSource)。

于 2009-02-06T08:31:16.050 に答える
1

問題のアイテムのテキストを手動で更新してみませんか? また、ListBox の独自のデータバインディング メカニズムを展開することを検討することもできます。そして、 ObjectListViewをチェックして、それが役立つかどうかを確認してください。

于 2009-02-06T08:26:30.647 に答える