# CollectionViewController

> Base collection view controller. View controllers are meant to take care of data virtualized by any BaseVerticalCollectionView inheritor.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.UIElements](/engine/6000.6/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public abstract class CollectionViewController : IDisposable
```

## Remarks

For the difference between IDs and indices, refer to [BaseVerticalCollectionView](/engine/6000.6/script-reference/unityengine/uielements/baseverticalcollectionview.md).

## Properties

| Property                                                                                                      | Description                                    |
| ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| [itemsSource](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemssource.md) | The items source stored in a non-generic list. |
| [view](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/view.md)               | The view for this controller.                  |

## Methods

| Method                                                                                                                                        | Description                                                                                                                                                                                                                                                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BindItem](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/binditem.md)                                       | Binds a row to an item index.                                                                                                                                                                                                                                                    |
| [DestroyItem](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/destroyitem.md)                                 | Destroys a VisualElement when the view is rebuilt or cleared.                                                                                                                                                                                                                    |
| [Dispose](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/dispose.md)                                         | Called when this controller is not longer needed to provide a way to release resources.                                                                                                                                                                                          |
| [GetIdForIndex](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/getidforindex.md)                             | Returns the id for the specified index.                                                                                                                                                                                                                                          |
| [GetIndexForId](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/getindexforid.md)                             | Returns the index for the specified id.                                                                                                                                                                                                                                          |
| [GetItemForId](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/getitemforid.md)                               | Returns the item with the specified ID.                                                                                                                                                                                                                                          |
| [GetItemForIndex](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/getitemforindex.md)                         | Returns the item with the specified index.                                                                                                                                                                                                                                       |
| [GetItemsCount](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/getitemscount.md)                             | Returns the expected item count in the source.                                                                                                                                                                                                                                   |
| [MakeItem](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/makeitem.md)                                       | Creates a VisualElement to use in the virtualization of the collection view.                                                                                                                                                                                                     |
| [PrepareView](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/prepareview.md)                                 | Initialization step once the view is set.                                                                                                                                                                                                                                        |
| [RaiseItemIndexChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/raiseitemindexchanged.md)             | Invokes the [\_itemIndexChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemindexchanged.md) event.                                                                                                                                     |
| [RaiseItemsSourceChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/raiseitemssourcechanged.md)         | Invokes the [\_itemsSourceChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemssourcechanged.md) event.                                                                                                                                 |
| [SetItemsSourceWithoutNotify](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/setitemssourcewithoutnotify.md) | Set the [\_itemsSource](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemssource.md) without raising the [\_itemsSourceChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemssourcechanged.md) event. |
| [SetView](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/setview.md)                                         | Sets the view for this controller.                                                                                                                                                                                                                                               |
| [UnbindItem](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/unbinditem.md)                                   | Unbinds a row to an item index.                                                                                                                                                                                                                                                  |

## Events

| Member                                                                                                                      | Description                                                                                                                              |
| --------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| [itemIndexChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemindexchanged.md)     | Raised when an item in the source changes index. The first argument is source index, second is destination index.                        |
| [itemsSourceChanged](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemssourcechanged.md) | Raised when the [\_itemsSource](/engine/6000.6/script-reference/unityengine/uielements/collectionviewcontroller/itemssource.md) changes. |
