当用户在我的DataGrid
中进行列排序时,我希望所有空单元格或空值单元格都被排到底部,而不是排到顶部。
我编写了一个IComparer<T>
来确保空白总是向下排序,但我无法将其应用到我的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 友好的解决方案。