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 представляет собой 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. |