Когда пользователь выполняет сортировку столбцов в моем DataGrid
, я хочу, чтобы все пустые или пустые ячейки сортировались по низу, а не по верху.
Я написал IComparer<T>
, который гарантирует, что пробелы всегда сортируются по убыванию, но я не могу понять, как применить его к столбцам моего DataGrid
. Обратите внимание, что начальная сортировка DataGrid
, которую я делаю с помощью метода LINQ OrderBy()
, прекрасно работает. Проблема заключается в том, что все последующие сортировки, выполняемые пользователем, сортируют пробелы сверху.
Код для сравнения
public class BlankLastStringComparer : IComparer<string>
{
public int Compare(string x, string y)
{
if (string.IsNullOrEmpty(x) && !string.IsNullOrEmpty(y))
return 1;
else if (!string.IsNullOrEmpty(x) && string.IsNullOrEmpty(y))
return -1;
else
return string.Compare(x, y);
}
}
Вопросы
Как мне заставить DataGridColumn
использовать мой компаратор? Или, если это невозможно, вы можете предложить обходной путь? Я надеюсь на MVVM дружественное решение, если это возможно.