Начальная сортировка DataGrid - PullRequest
2 голосов
/ 20 января 2012

У меня есть пользовательский элемент управления, содержащий инструментарий WPF DataGrid.Этот элемент управления используется в разных местах моего приложения.Сетка не знает, какой тип данных будет отображаться.Есть ли способ изначально отсортировать сетку по первому столбцу в порядке возрастания независимо от того, какими данными заполнена сетка?Я не думаю, что могу использовать CollectionViewSource, потому что я не знаю PropertyName свойства, связанного с первым столбцом.

1 Ответ

9 голосов
/ 20 января 2012

Вы можете подключиться к событию:

dataGrid.AutoGeneratedColumns += dataGrid_AutoGeneratedColumns;

и отсортировать первый столбец:

void dataGrid_AutoGeneratedColumns(object sender, EventArgs e)
{
    var firstCol = dataGrid.Columns.First();
    firstCol.SortDirection = ListSortDirection.Ascending;
    dataGrid.Items.SortDescriptions.Add(new SortDescription(firstCol.SortMemberPath, ListSortDirection.Ascending));
}

Я бы предложил вам создать отдельный производный элемент управления DataGrid, поместив эту логику туда и используя новый элемент управления, чтобы избежать повторения кода каждый раз.

public class CustomDataGrid : DataGrid
{
    public DynamicDataGrid()
    { ... }

    ...
}
...