2009-05-27 138 views
1

我有了一列數據綁定到list.Count列表視圖見下圖:WPF列表視圖數據綁定

<ListView.View> 
    <GridView> 
     <GridViewColumn Header="Contacts" DisplayMemberBinding="{Binding Path=Contacts.Count}"/> 
     <GridViewColumn Header="Notes" DisplayMemberBinding="{Binding Path=Notes.Count}"/> 
    </GridView> 
</ListView.View> 

列表實現INotifyCollectionChanged。但是,當我將一個項目添加到列表中時,listview列不會被刷新。我在綁定中做錯了什麼?我可以執行以下操作:

void _Contacts_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
    { 
     OnPropertyChanged("Contacts"); 
    } 

其中基本引發集合的PropertyChanged事件。這迫使WPF重新綁定,但我寧願沒有通過我的代碼(尤其是那些不必要的)飛行事件的豐盈。

任何想法?

回答

1

的問題是,當你提出一個屬性更改爲聯繫人,您沒有Count屬性引發事件..

您可以

OnPropertyChanged("Count") 
在列表

解決這個問題,因爲您的列表實現INotifyPropertyChanged接口...

+0

謝謝你,我沒有注意到監督。 – Jose 2009-05-27 15:11:09

1

或者,你可以從派生的ObservableCollection代替。它內置了所有的更改通知代碼,從長遠來看可以爲您節省一些時間。

+0

問題是我加了一些屬性的集合類,我需要的數據綁定。 – Jose 2009-05-27 15:06:16