# MultiColumnController

> The default controller for a multi column view. Takes care of adding the MultiColumnCollectionHeader and reacting to the various callbacks.

## Definition

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

```csharp
public class MultiColumnController : IDisposable
```

## Static Fields

| Value                                                                                                                                      | Description                                                             |
| ------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| [cellLabelUssClassName](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/celllabelussclassname.md)             | The USS class name for default labels cells inside a multi column view. |
| [cellUssClassName](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/cellussclassname.md)                       | The USS class name for all cells inside a multi column view.            |
| [headerContainerUssClassName](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/headercontainerussclassname.md) | The USS class name for the header container inside a multi column view. |
| [rowContainerUssClassName](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/rowcontainerussclassname.md)       | The USS class name for all row containers inside a multi column view.   |

## Constructors

| Constructor                                                                                                                                                                                                                                                                | Description                                                                      |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [MultiColumnController(UnityEngine.UIElements.Columns,UnityEngine.UIElements.SortColumnDescriptions,System.Collections.Generic.List\{UnityEngine.UIElements.SortColumnDescription})](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/ctor.md) | Constructor. It will create the MultiColumnCollectionHeader to use for the view. |

## Methods

| Method                                                                                                     | Description                                                                                                                            |
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| [BindItem](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/binditem.md)       | Binds a row of multiple cells to an item index.                                                                                        |
| [DestroyItem](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/destroyitem.md) | Destroys a VisualElement when the view is rebuilt or cleared.                                                                          |
| [Dispose](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/dispose.md)         | Unregisters events and removes the header from the hierarchy.                                                                          |
| [MakeItem](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/makeitem.md)       | Creates a VisualElement to use in the virtualization of the collection view. It will create a cell for every visible column.           |
| [PrepareView](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/prepareview.md) | Initialization step once the view is set. It will insert the multi column header in the hierarchy and register to important callbacks. |
| [UnbindItem](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/unbinditem.md)   | Unbinds the row at the item index.                                                                                                     |

## Events

| Member                                                                                                                                           | Description                                                          |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |
| [columnSortingChanged](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/columnsortingchanged.md)                     | Raised when sorting changes for a column.                            |
| [headerContextMenuPopulateEvent](/engine/6000.5/script-reference/unityengine/uielements/multicolumncontroller/headercontextmenupopulateevent.md) | Raised when a column is right-clicked to bring context menu options. |
