Сортировка данных по параметру uwp - PullRequest
0 голосов
/ 25 октября 2018

У меня есть приложение UWP, которое считывает данные из базы данных SQL и отображает их в Microsoft Toolkit DataGrid.Я использовал V4 и предварительную версию V5 таблицы данных.Вы можете выполнить сортировку, щелкнув по заголовку столбца, но это просто вызовет событие, которое вы затем должны обработать в коде.Я сделал это, и все это работает, но я должен обрабатывать каждый столбец в отдельности.Я могу передать выбранный столбец в код, но есть ли способ передать его в процедуру сортировки, чтобы был только один набор кода?

В основном коде:

// Populate list of column names for use in searching
List<String> elementNames = new List<String>();
    Type type = typeof(ExpiringCustomer);
    PropertyInfo[] properties = type.GetProperties();
    foreach (PropertyInfo property in properties)
    {
        this.elementNames.Add(property.Name);
    }

Это процедура сортировки:

private void dataGrid1_Sorting(object sender, DataGridColumnEventArgs e)
{

    String orderString = elementNames[e.Column.DisplayIndex];

    if (e.Column.SortDirection == null || e.Column.SortDirection == DataGridSortDirection.Descending)
    {
        if (e.Column.Tag.ToString() == "Customer")
        {                    
            dataGrid1.ItemsSource = new ObservableCollection<ExpiringCustomer>(from item in expCustomers
                orderby item.customerName ascending
                select item);
            }
            else
            if (e.Column.Tag.ToString() == "UserCount")
            {
                dataGrid1.ItemsSource = new ObservableCollection<ExpiringCustomer>(from item in expCustomers
                    orderby item.userCount ascending
                    select item);
                    else
                    {
                        if ............
                        etc. etc.

Я хотел бы иметь возможность использовать 'orderString', чтобы мне не пришлось повторять код сортировки.

...