locked
Что такое СollectionView? RRS feed

  • Общие обсуждения

  • Как сказано в MSDN документации: СollectionView представляет обзор коллекций данных.

    Он предоставляет возможности для группировки, сортировки, фильтрации и перемещения коллекции данных. СollectionView находится между UI/View and the data/DataModel и обеспечивает один интерфейс или полное взаимодействие, что бы Обзор мог понять и отобразить изменения.

    Из UI или представления View можно узнать только о INotifyCollectionChanged или INotifyPropertyChanged интефейсах. Когда коллекция источника данных реализует INotifyCollectionChanged интерфейс, CollectionView запишет в CollectionChanged событие, и адаптирует в свои собственные события CollectionChanged или PropertyChanged(заметьте что СollectionView имеет так же собственные реализованые INotifyCollectionChanged and INotifyPropertyChanged интерфейсы. И когда подчиненный базовый источник данных реализует IBindingList такой как ADO.NET's DataView,(базовая,подчиненая) CollectionView реализация (в случае если это будет BindingListCollectionView) запишет в своё собственное ListChanged событие, и адаптирует в свое собственное CollectionChanged или PropertyChanged событие.)


    Когда вы разрабатываете данные управляемые WPF приложениями, вам может понадобиться всегда помнить о View/ViewModel/Model pattern, потому что WPF построен на  механизме связывания данных  вокруг этого шаблона. К примеру, у вас есть listBox, данные которого связаны с IList коллекцией, IList коллекция будет DataModel, скрытый CollectionView также известный как ListCollectionView будет ViewModel, и ListBox будет отображать сам себя . Для боле подробной информации о V-VM-M шаблоне, пожалуйста обращайтесь к следущим постам John Gossman-а:
    http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx
    http://blogs.msdn.com/johngossman/archive/2006/03/07/545371.aspx
    Для связи [Mail]
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 23:02 MSDN Forums consolidation (От:Разработка Windows-приложений)
    17 марта 2010 г. 13:01
    Модератор