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
- Наследование
- Производный
- Реализации
Комментарии
В коде не следует создавать объекты этого класса. Чтобы создать представление коллекции только для коллекции, которая реализует 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 на основе указанного типа. |