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


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 представляет собой представление CollectionView xaml класса. Пример см. в разделе "Практическое руководство. Сортировка и группирование данных с помощью представления в XAML".

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

Чтобы задать представление в XAML, используйте CollectionViewSource класс. CollectionViewSource — это представление CollectionView класса XAML, которое предоставляет наиболее часто используемые члены 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, Int32)

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

SetCurrent(Object, Int32)

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

ToString()

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

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

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

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

События

Имя Описание
CollectionChanged

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

CurrentChanged

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

CurrentChanging

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

PropertyChanged

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

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

Имя Описание
IEnumerable.GetEnumerator()

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

INotifyCollectionChanged.CollectionChanged

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

INotifyPropertyChanged.PropertyChanged

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

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

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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