WPF Listview数据绑定

时间:2009-05-27 14:15:30

标签: c# wpf listview data-binding

我有一个列表视图,它有一个列数据绑定到list.Count见下文:

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

List实现了INotifyCollectionChanged。但是当我向列表中添加项目时,listview列不会刷新。我在装订时做错了吗?我可以做到以下几点:

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

这基本上会引发集合的PropertyChanged事件。这迫使wpf重新绑定,但我宁愿没有大量的事件在我的代码中飞行(尤其是不必要的事件)。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

问题在于,当您为联系人引发更改的属性时,不会为Count属性引发事件。

您可以使用

解决此问题
OnPropertyChanged("Count")
列表中的

,因为您的列表实现了INotifyPropertyChanged接口......

答案 1 :(得分:1)

或者,您可以从ObservableCollection派生。它内置了所有更改通知代码,从长远来看可以为您节省一些时间。