Ejemplo n.º 1
0
        /// <summary>
        /// Constructor. It will create the <see cref="MultiColumnCollectionHeader"/> to use for the view.
        /// </summary>
        /// <param name="columns">The columns data used to initialize the header.</param>
        /// <param name="sortDescriptions">The sort data used to initialize the header.</param>
        /// <param name="sortedColumns">The sorted columns for the view.</param>
        /// <remarks>The header will be added to the view in the <see cref="PrepareView"/> phase.</remarks>
        public MultiColumnController(Columns columns, SortColumnDescriptions sortDescriptions, List <SortColumnDescription> sortedColumns)
        {
            m_MultiColumnHeader = new MultiColumnCollectionHeader(columns, sortDescriptions, sortedColumns)
            {
                viewDataKey = k_HeaderViewDataKey
            };
            m_MultiColumnHeader.columnSortingChanged     += OnColumnSortingChanged;
            m_MultiColumnHeader.contextMenuPopulateEvent += OnContextMenuPopulateEvent;
            m_MultiColumnHeader.columnResized            += OnColumnResized;

            m_MultiColumnHeader.columns.columnAdded     += OnColumnAdded;
            m_MultiColumnHeader.columns.columnRemoved   += OnColumnRemoved;
            m_MultiColumnHeader.columns.columnReordered += OnColumnReordered;

            m_MultiColumnHeader.columns.columnChanged += OnColumnsChanged;
            m_MultiColumnHeader.columns.changed       += OnColumnChanged;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Unregisters events and removes the header from the hierarchy.
        /// </summary>
        public void Dispose()
        {
            if (m_View != null)
            {
                m_View.scrollView.horizontalScroller.valueChanged -= OnHorizontalScrollerValueChanged;
                m_View.scrollView.contentViewport.UnregisterCallback <GeometryChangedEvent>(OnViewportGeometryChanged);
                m_View = null;
            }

            m_MultiColumnHeader.columnContainer.UnregisterCallback <GeometryChangedEvent>(OnColumnContainerGeometryChanged);
            m_MultiColumnHeader.columnSortingChanged     -= OnColumnSortingChanged;
            m_MultiColumnHeader.contextMenuPopulateEvent -= OnContextMenuPopulateEvent;
            m_MultiColumnHeader.columnResized            -= OnColumnResized;
            m_MultiColumnHeader.columns.columnAdded      -= OnColumnAdded;
            m_MultiColumnHeader.columns.columnRemoved    -= OnColumnRemoved;
            m_MultiColumnHeader.columns.columnReordered  -= OnColumnReordered;
            m_MultiColumnHeader.columns.columnChanged    -= OnColumnsChanged;
            m_MultiColumnHeader.columns.changed          -= OnColumnChanged;
            m_MultiColumnHeader.RemoveFromHierarchy();
            m_MultiColumnHeader.Dispose();
            m_MultiColumnHeader = null;
        }