2012-03-04 21 views
0

おはよう、リストボックスのデータを新しいものを追加した後に更新する

リストボックスでバインドしてデータをリフレッシュしたいときは、新しいものを追加します。 MVVMデザインパターンを使用しているので、ViewModelのプロパティはAllGroupsであり、すべてのグループはTotalCountとNameプロパティを持っています。 プロパティAllGroupsはObservableCollectionです。

リストボックスには、グループ名とTotalCountが表示されます。 トータルカウントはちょうどゲッター

public int TotalCount 
{ 
    get 
    { 
    return Items.Count; 
    } 
} 

によって実現しており、トータルカウントは列ではありません。

私は2つのアイテム(TotalCount = 2)でグループ「すべて」を持っていますが、グループに新しいアイテムを追加してグループのリストを表示すると「すべて」と合計カウント= 2が表示されますが、 「すべて」および「3」を選択します。

どうすればデータを手動で更新できますか?助けてくれてありがとう。 Itemコレクションに変更があったら:)

+0

おそらくこの投稿はあなたを助けます - > http://stackoverflow.com/questions/7455856/wpf-datagrid-doesnt-update-after-instert-element-to-source – nosbor

答えて

2

あなたはTotalCount

が含まれていることにクラスのINotifPropertyChangedを実装する必要がありTotalCountは、最新の値を持つビューを更新するように変更されたことViewを知らせるためにTotalCountプロパティのプロパティ変更イベントを発生させる

1

INotifyPropertyChangedを実装TotalCountためNotifyPropertyChangedイベントを発生させるときに、このようなコレクションの変更、:

AllGroups.CollectionChanged += (s, e) => OnNotifyPropertyChanged("TotalCount"); 
+0

この構成は正確に何を意味していますか?ここに私のグループクラスhttp://pastebin.com/Rmy4KNENとアイテムクラスhttp://pastebin.com/2TzJbtNUがあります。 INotifyPropertyChanged私は実装しました。参照クラスGroup内のクラスItemで変更されたイベントを発生させるにはどうすればよいですか? –

+0

これらの2つのどちらもObservableCollectionを含んでいません。これはViewModelで行う必要があります。 –

+0

ここに私のDataContextとViewModelがあります。 http://pastebin.com/s9zp4s8bプロパティTotalCountは単なるヘルプです。私はGroups.Items.Countを使用できます。問題は関係にある。 Itemを作成してAllItemsコレクションに追加すると、この新しいItemはプロパティGroupを持ちますが、このグループは、このグループと関連する新しい項目が存在するかどうかを知りません。私はこのグループにどのように伝えることができますか?「ねえ、あなたと関係のある新しいアイテムが存在します。自分をリフレッシュしてください! ?? :) –

関連する問題