WPF Listview привязка данных - PullRequest
1 голос
/ 27 мая 2009

У меня есть представление списка, у которого есть привязка столбца к списку. Количество см. Ниже:

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

Список реализует INotifyCollectionChanged. Но когда я добавляю элемент в список, столбец списка не обновляется. я делаю что-то не так в своем переплете? Я могу сделать следующее:

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

Что в основном вызывает событие PropertyChanged коллекции. Это заставляет wpf перепривязываться, но я бы предпочел, чтобы в моем коде не было обилия событий (особенно ненужных).

Есть идеи?

Ответы [ 2 ]

1 голос
/ 27 мая 2009

В качестве альтернативы вы можете использовать вместо ObservableCollection. В него встроен весь код уведомления об изменениях, и он может сэкономить время в долгосрочной перспективе.

1 голос
/ 27 мая 2009

Проблема в том, что при вызове свойства, измененного для контактов, вы не создаете событие для свойства Count.

Вы можете решить эту проблему с помощью

OnPropertyChanged("Count")

в вашем списке, поскольку в вашем списке реализован интерфейс INotifyPropertyChanged ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...