Esempio n. 1
0
        protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            bool isMouseCaptured = this.IsMouseCaptured;
            bool isPressed       = this.IsPressed;

            if (m_dragSourceManager != null)
            {
                m_dragSourceManager.ProcessMouseLeftButtonUp(e);
            }

            if (isMouseCaptured)
            {
                bool click = isPressed;

                if (click)
                {
                    bool           allowSort = true;
                    GroupByControl parentGBC = this.GetParentGroupByControl();

                    if (parentGBC != null)
                    {
                        allowSort = parentGBC.AllowSort;
                    }

                    if (allowSort)
                    {
                        DataGridContext       gridContext = DataGridControl.GetDataGridContext(this);
                        GroupLevelDescription groupInfo   = this.Content as GroupLevelDescription;
                        Debug.Assert((gridContext != null) && (groupInfo != null));

                        if ((gridContext != null) && (groupInfo != null))
                        {
                            ColumnBase column = gridContext.Columns[groupInfo.FieldName];

                            if ((column != null) && (column.AllowSort))
                            {
                                DataGridContext           dataGridContext  = DataGridControl.GetDataGridContext(this);
                                SortDescriptionCollection sortDescriptions = dataGridContext.Items.SortDescriptions;
                                ColumnCollection          columns          = dataGridContext.Columns;

                                SortingHelper.ToggleColumnSort(
                                    dataGridContext, sortDescriptions,
                                    columns, column, ((Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift));

                                e.Handled = true;
                            }
                        }
                    }
                }
            }

            base.OnMouseLeftButtonUp(e);
        }
Esempio n. 2
0
        internal void DoSort(bool shiftUnpressed)
        {
            if (!this.CanDoSort())
            {
                return;
            }

            DataGridContext dataGridContext = this.DataGridContext;

            Debug.Assert(dataGridContext != null);

            SortingHelper.ToggleColumnSort(
                dataGridContext, dataGridContext.Items.SortDescriptions,
                dataGridContext.Columns, this.ParentColumn, shiftUnpressed);
        }
        protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            bool isMouseCaptured = this.IsMouseCaptured;
            bool isPressed       = this.IsPressed;

            if (m_dragSourceManager != null)
            {
                m_dragSourceManager.ProcessMouseLeftButtonUp(e);
            }

            if (isMouseCaptured)
            {
                bool click = isPressed;

                if (click)
                {
                    // DataGridCollectionView always return true for CanSort
                    bool allowSort = true;

                    // Use the ParentDataGridContext to be sure to get a
                    // DataGridContext of the correct detail level since
                    // all the HierarchicalGroupByItem will share the same DataGridContext
                    // which is the one of the level where the HierarchicalGroupByControl
                    // is located
                    DataGridContext dataGridContext;

                    try
                    {
                        dataGridContext = this.ParentDataGridContext;
                    }
                    catch (DataGridInternalException)
                    {
                        dataGridContext = null;
                    }

                    if ((dataGridContext != null) && (dataGridContext.SourceDetailConfiguration == null))
                    {
                        allowSort = dataGridContext.Items.CanSort;
                    }

                    if (allowSort)
                    {
                        ColumnCollection      columns   = this.ParentColumns;
                        GroupLevelDescription groupInfo = this.Content as GroupLevelDescription;

                        Debug.Assert((columns != null) && (groupInfo != null));

                        if ((columns != null) && (groupInfo != null))
                        {
                            ColumnBase column = columns[groupInfo.FieldName];

                            if ((column != null) && (column.AllowSort))
                            {
                                SortingHelper.ToggleColumnSort(
                                    dataGridContext, this.ParentSortDescriptions,
                                    columns, column, ((Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift));

                                e.Handled = true;
                            }
                        }
                    }
                }
            }

            base.OnMouseLeftButtonUp(e);
        }