Поделиться через


CollectionView Класс

Определение

Представляет представление для группирования, сортировки, фильтрации коллекции данных и перемещения по ней.

public ref class CollectionView : System::Windows::Threading::DispatcherObject, System::Collections::IEnumerable, System::ComponentModel::ICollectionView, System::ComponentModel::INotifyPropertyChanged
public ref class CollectionView : System::Windows::Threading::DispatcherObject, System::Collections::IEnumerable, System::Collections::Specialized::INotifyCollectionChanged, System::ComponentModel::ICollectionView, System::ComponentModel::INotifyPropertyChanged
public class CollectionView : System.Windows.Threading.DispatcherObject, System.Collections.IEnumerable, System.ComponentModel.ICollectionView, System.ComponentModel.INotifyPropertyChanged
public class CollectionView : System.Windows.Threading.DispatcherObject, System.Collections.IEnumerable, System.Collections.Specialized.INotifyCollectionChanged, System.ComponentModel.ICollectionView, System.ComponentModel.INotifyPropertyChanged
type CollectionView = class
    inherit DispatcherObject
    interface ICollectionView
    interface IEnumerable
    interface INotifyCollectionChanged
    interface INotifyPropertyChanged
type CollectionView = class
    inherit DispatcherObject
    interface IEnumerable
    interface INotifyCollectionChanged
    interface ICollectionView
    interface INotifyPropertyChanged
Public Class CollectionView
Inherits DispatcherObject
Implements ICollectionView, IEnumerable, INotifyPropertyChanged
Public Class CollectionView
Inherits DispatcherObject
Implements ICollectionView, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
Наследование
CollectionView
Производный
Реализации

Комментарии

Не следует создавать объекты этого класса в коде. Чтобы создать представление коллекции для коллекции, реализующей только IEnumerable, создайте CollectionViewSource объект , добавьте коллекцию в Source свойство и получите представление коллекции из View свойства .

Представление коллекции можно рассматривать как слой поверх исходной коллекции привязки, которая позволяет перемещаться по коллекции и отображать ее на основе запросов сортировки, фильтрации и группирования без необходимости управлять самой базовой исходной коллекцией. Если исходная коллекция реализует INotifyCollectionChanged интерфейс , изменения, создающие CollectionChanged событие, распространяются на представления.

Так как представление не изменяет базовую исходную коллекцию, с ней может быть связано несколько представлений. С помощью представлений можно отображать одни и те же данные разными способами. Например, можно использовать два представления в коллекции Task объектов для отображения задач, отсортированных по приоритету в одной части страницы и сгруппированных по областям в другой части страницы.

В приложениях WPF все коллекции имеют связанное представление коллекций по умолчанию. Вместо работы с коллекцией напрямую подсистема привязки всегда обращается к коллекции через связанное представление. Чтобы получить представление по умолчанию, используйте CollectionViewSource.GetDefaultView метод . Внутренний класс, основанный на , CollectionView является представлением по умолчанию для коллекций, реализующих только IEnumerable. ListCollectionView — это представление по умолчанию для коллекций, реализующих IList. BindingListCollectionView — это представление по умолчанию для коллекций, реализующих IBindingListView или IBindingList.

Кроме того, можно создать представление коллекции на языке XAML с помощью CollectionViewSource класса , а затем привязать элемент управления к такому представлению. Класс CollectionViewSource представляет собой XAML-представление CollectionView класса . Пример см. в разделе Практическое руководство. Сортировка и группирование данных с помощью представления в XAML.

Дополнительные сведения см. в разделе Привязка к коллекциям статьи Общие сведения о привязке данных.

Чтобы задать представление в XAML, используйте CollectionViewSource класс . CollectionViewSource — это представление класса XAML CollectionView , которое предоставляет наиболее часто используемые члены CollectionView класса.

Конструкторы

CollectionView(IEnumerable)

Инициализация нового экземпляра класса CollectionView, являющегося представлением заданной коллекции.

Свойства

AllowsCrossThreadChanges

Получает значение, указывающее, может ли какой-либо поток, кроме создавшего CollectionView, изменить SourceCollection.

CanFilter

Получает значение, которое определяет, поддерживает ли представление фильтрацию.

CanGroup

Получение значения, которое определяет, поддерживает ли представление группировку.

CanSort

Получает значение, которое определяет, поддерживает ли представление сортировку.

Comparer

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

Count

Получения числа записей в представлении.

Culture

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

CurrentItem

Возвращает текущий элемент в представлении.

CurrentPosition

Получение порядкового номера CurrentItem в рамках представления (возможна сортировка и фильтрация).

Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.

(Унаследовано от DispatcherObject)
Filter

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

GroupDescriptions

Получение коллекции объектов GroupDescription, описывающих группировку элементов коллекции в данном представлении.

Groups

Получает коллекцию групп высшего уровня, конструируемого на основе свойства GroupDescriptions.

IsCurrentAfterLast

Возвращает значение, показывающее, находится ли элемент CurrentItem за концом коллекции.

IsCurrentBeforeFirst

Получает значение, указывающее, находится ли элемент CurrentItem представления перед началом коллекции.

IsCurrentInSync

Получение значения, которое определяет, находится ли CurrentItem в CurrentPosition.

IsDynamic

Получение значения, определяющего, предоставляет ли базовая коллекция уведомления об изменениях.

IsEmpty

Получение значения, которое определяет, является ли пустым полученное (отфильтрованное) представление.

IsInUse

Получает значение, указывающее, подписывается ли какой-либо объект на события этого CollectionView.

IsRefreshDeferred

Получает значение, которое указывает, используется ли метод DeferRefresh().

NeedsRefresh

Получение значения, которое определяет, необходимо ли обновление представлению.

NewItemPlaceholder

Получает объект, находящийся в коллекции для представления нового элемента.

SortDescriptions

Получение коллекции структур SortDescription, описывающей сортировку коллекции в данном представлении.

SourceCollection

Возврат базовой неотфильтрованной коллекции.

UpdatedOutsideDispatcher

Возвращает значение, указывающее, было ли необходимо обновить журнал изменений, так как CollectionChanged уведомление было получено в другом потоке без предварительного входа в диспетчер потока пользовательского интерфейса.

Методы

CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
ClearChangeLog()
Устаревшие..

Очищение ожидающих изменений из журнала изменений

ClearPendingChanges()

Очищает необработанные изменения в коллекцию.

Contains(Object)

Возврат значения, определяющего, принадлежит ли заданный элемент данному представлению.

DeferRefresh()

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

DetachFromSourceCollection()

Удаляет ссылку на базовую коллекцию из CollectionView.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

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

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetItemAt(Int32)

Получение элемента в заданном начинающемся с нуля индексе представления.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IndexOf(Object)

Возврат индекса, в котором расположен заданный элемент.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MoveCurrentTo(Object)

Задает указанный элемент в качестве свойства CurrentItem в представлении.

MoveCurrentToFirst()

Задает первый элемент представления в качестве свойства CurrentItem.

MoveCurrentToLast()

Задает последний элемент представления в качестве свойства CurrentItem.

MoveCurrentToNext()

Задает элемент, следующий в представлении за свойством CurrentItem, в качестве свойства CurrentItem.

MoveCurrentToPosition(Int32)

Задает элемент по заданному индексу в качестве CurrentItem в представлении.

MoveCurrentToPrevious()

Задает элемент в представлении перед CurrentItem как CurrentItem.

OKToChangeCurrent()

Возвращение значения, которое определяет, может ли представление менять то, какой элемент является CurrentItem.

OnAllowsCrossThreadChangesChanged()

Происходит при изменении свойства AllowsCrossThreadChanges.

OnBeginChangeLogging(NotifyCollectionChangedEventArgs)
Устаревшие..

Вызван базовым классом, чтобы уведомить производный класс, что событие CollectionChanged было отправлено в очередь сообщений.

OnCollectionChanged(NotifyCollectionChangedEventArgs)

Вызывает событие CollectionChanged.

OnCollectionChanged(Object, NotifyCollectionChangedEventArgs)

Вызывает событие CollectionChanged.

OnCurrentChanged()

Вызывает событие CurrentChanged.

OnCurrentChanging()

Порождение события CurrentChanging, которое не подлежит отмене.

OnCurrentChanging(CurrentChangingEventArgs)

Порождение события CurrentChanging посредством заданных аргументов.

OnPropertyChanged(PropertyChangedEventArgs)

Порождение события PropertyChanged с помощью заданных аргументов.

PassesFilter(Object)

Возврат значения, определяющего, принадлежит ли заданный элемент в базовой коллекции представлению.

ProcessCollectionChanged(NotifyCollectionChangedEventArgs)

При переопределении в производном классе обрабатывает одно изменение в потоке пользовательского интерфейса.

ProcessPendingChanges()

Гарантирует, что были зафиксированы все ожидающие изменения в коллекции.

Refresh()

Повторное создание представления.

RefreshOrDefer()

Обновление представления или указание на необходимость обновления представления после завершения отложенного цикла.

RefreshOverride()

Повторное создание представления.

SetCurrent(Object, Int32)

Установка заданного элемента и индекса в качестве значений свойств CurrentItem и CurrentPosition.

SetCurrent(Object, Int32, Int32)

Установка заданного элемента и индекса в качестве значений свойств CurrentItem и CurrentPosition. Данный метод можно вызвать из конструктора производного класса.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

События

CollectionChanged

Возникает при изменении представления.

CurrentChanged

Происходит после изменения CurrentItem.

CurrentChanging

Происходит, когда CurrentItem меняется.

PropertyChanged

Происходит при изменении значения свойства.

Явные реализации интерфейса

IEnumerable.GetEnumerator()

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

INotifyCollectionChanged.CollectionChanged

Возникает при изменении представления.

INotifyPropertyChanged.PropertyChanged

Возникает при смене значения свойства.

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Применяется к