MicrosoftDocs / WindowsCommunityToolkitDocs

Creative Commons Attribution 4.0 International
179 stars 156 forks source link

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

Open Trolldemorted opened 10 months ago

Trolldemorted commented 10 months ago

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.