У меня есть приложение 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', чтобы мне не пришлось повторять код сортировки.