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. |