0

ListViewいくつかのアクションを実行する必要があるいくつかのレコードを含む があります。これらのレコードを実行ボタンでカウントしたいので、ボタンの .Text プロパティは「実行 ([items_count])」となります。

もちろん、ユーザーがリストにアイテムを追加/削除するので、カウンターをリフレッシュしてもらいたいです。アイテムが追加/削除されたときに発生するイベントを追加することを考えていましたが、新しい listView クラスを作成したくありません。できるだけシンプルにしたいのです。

このコードを使用しようとしましたが、失敗しました。私がしたことは:

// in the form's code:
public string ItemsCount
{
    get { return String.Format("Execute ({0})", myListView.Items.Count); }
}

// in the form's constructor:
myButton.DataBindings.Add("Text", this, "ItemsCount");

そして、常に「Execute {0)」しか表示されません。

そのための簡単な解決策があるので、既存のオブジェクトを変更する必要はありません(myListViewのクラスを継承するカスタムクラスに変更するなどListView)?

4

1 に答える 1

1

ListView の Items コレクションが変更されたら、何らかの変更通知を提供する必要があると思います。変更通知の実装に関するヘルプについては、このリンクを確認してください。

編集

WinForms ListView に関する情報をブラッシュアップしましたが、Items コレクションがいつ変更されたかを検出する簡単な方法がないようです。関連するディスカッションを確認してください。

したがって、ここで利用できる唯一のオプションは、ListView を実際にサブクラス化することです。

于 2013-02-21T10:21:26.707 に答える