コード例 #1
0
        private void sortColumnHeader_Click(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (Rows.Count < 1)
            {
                return;
            }

            columnToBeSortedIndex = e.ColumnIndex;
            if (Columns[columnToBeSortedIndex].SortMode == DataGridViewColumnSortMode.NotSortable)
            {
                return;
            }

            CollapsingPoolHostDataGridViewRow firstRow = Rows[0] as CollapsingPoolHostDataGridViewRow;

            if (firstRow == null)
            {
                return;
            }

            DetermineSortDirection(e);

            if (columnToBeSortedIndex == firstRow.NameCellIndex)
            {
                SortAndRebuildTree(new CollapsingPoolHostDataGridViewRowDefaultSorter(direction));
            }

            SortAdditionalColumns();

            Columns[columnToBeSortedIndex].HeaderCell.SortGlyphDirection =
                direction == ListSortDirection.Ascending
                    ? SortOrder.Ascending
                    : SortOrder.Descending;
        }
コード例 #2
0
        /// <summary>
        /// Interface member correcting the sort for the direction required
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns>0,1 or -1 depending on the comparison</returns>
        public int Compare(object x, object y)
        {
            if (x == null || y == null)
                return 1;

            lhs = x as CollapsingPoolHostDataGridViewRow;
            rhs = y as CollapsingPoolHostDataGridViewRow;

            if (lhs == null || rhs == null)
                return 1;

            if (direction == ListSortDirection.Ascending)
                return PerformSort();
            else
                return -1 * PerformSort();
        }
コード例 #3
0
        /// <summary>
        /// Interface member correcting the sort for the direction required
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns>0,1 or -1 depending on the comparison</returns>
        public int Compare(object x, object y)
        {
            if (x == null || y == null)
            {
                return(1);
            }

            lhs = x as CollapsingPoolHostDataGridViewRow;
            rhs = y as CollapsingPoolHostDataGridViewRow;

            if (lhs == null || rhs == null)
            {
                return(1);
            }

            if (direction == ListSortDirection.Ascending)
            {
                return(PerformSort());
            }
            else
            {
                return(-1 * PerformSort());
            }
        }