# Class: VirtualCollection

## core.collections. VirtualCollection

Коллекция-обертка, раширяющая родительскую Backbone-коллекцию функциями фильтрация, группировка (включая вложенную группировку и сворачивание групп), древовидное представление.
Используется в качестве модели данных для контролов виртуального списка и таблицы (`core.list`).
Оптимизировано для корректной работы с коллекцией до 100000 элементов.

#### new VirtualCollection(collection, options)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `collection` | Backbone.Collection | Родительская Backbone-коллекция.
  `options` | Object | Объект опций. ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `delayedAdd` | Boolean | <optional> | true | Добавление новой модели в коллекцию требует пересчета внутреннего индекса. Из этого следует, что добавление множества моделей приводит к резкому снижению производительности. Данная опция позволяет отложить пересчет индекса до окончания активного события.
  `comparator` | function |  |  | Функция-компаратор.
  `grouping` | Object |  |  | .
  `filter` | Object |  |  | .
  `model` | Backbone.Model |  |  | Если указано, будет использована как Backbone.Model при добавление новых объектов в формате JSON. По умолчанию используется модель родительской коллекции.
  `selectableBehavior` | String | <optional> | 'single' | Позволяет расширить коллекцию объектом SelectableBehavior. Используемая модель также должна поддерживать SelectableBehavior. Возможные варианты: `'none'` - не использовать selectable behavior. `'single'` - использовать SelectableBehavior.SingleSelect. `'multi'` - использовать SelectableBehavior.MultiSelect. .

  Source:
    - collections/VirtualCollection.js, line 79

### Extends

- Backbone.Collection