Skip to content

DataGrid sorting example has duplicate 'e.Column.Tag.ToString() == "Range"' check #702

Open
@Trolldemorted

Description

@Trolldemorted

This is redundant, right?

private void dg_Sorting(object sender, DataGridColumnEventArgs e)
{
    //Use the Tag property to pass the bound column name for the sorting implementation 
    if (e.Column.Tag.ToString() == "Range")
    {
        //Use the Tag property to pass the bound column name for the sorting implementation
        if (e.Column.Tag.ToString() == "Range")
        {
            //Implement sort on the column "Range" using LINQ
            if (e.Column.SortDirection == null || e.Column.SortDirection == DataGridSortDirection.Descending)
            {
                dg.ItemsSource = new ObservableCollection<Mountain>(from item in _items
                                                                    orderby item.Range ascending
                                                                    select item);
                e.Column.SortDirection = DataGridSortDirection.Ascending;
            }
            else
            {
                dg.ItemsSource = new ObservableCollection<Mountain>(from item in _items
                                                                    orderby item.Range descending
                                                                    select item);
                e.Column.SortDirection = DataGridSortDirection.Descending;
            }
        }
        // add code to handle sorting by other columns as required

        // Remove sorting indicators from other columns
        foreach (var dgColumn in dg.Columns)
        {
            if (dgColumn.Tag.ToString() != e.Column.Tag.ToString())
            {
                dgColumn.SortDirection = null;
            }
        }
    }
}

Document Details

Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

Tasks

Preview Give feedback
No tasks being tracked yet.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions