使用以特殊字符(Åå/Ää/Öö)开头的项目对ListView进行排序时,它们不会到达应有的位置。
我是否必须实施自定义排序方法,还是有更好的方法?
如果是自定义排序,是如何按ABC排序,包括特殊字符?
编辑: 这是我目前的排序方法:
<GridViewColumn DisplayMemberBinding="{Binding Name}" Width="150">
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Name" Click="SortByColumns">Name</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
...
private void SortByColumns(object sender, RoutedEventArgs e)
{
GridViewColumnHeader column = (sender as GridViewColumnHeader);
string sortBy = column.Tag.ToString();
if (listViewSortCol != null)
{
AdornerLayer.GetAdornerLayer(listViewSortCol).Remove(listViewSortAdorner);
siteListView.Items.SortDescriptions.Clear();
}
ListSortDirection newDir = ListSortDirection.Ascending;
if (listViewSortCol == column && listViewSortAdorner.Direction == newDir)
newDir = ListSortDirection.Descending;
listViewSortCol = column;
listViewSortAdorner = new SortAdorner(listViewSortCol, newDir);
AdornerLayer.GetAdornerLayer(listViewSortCol).Add(listViewSortAdorner);
siteListView.Items.SortDescriptions.Add(new SortDescription(sortBy, newDir));
}
答案 0 :(得分:1)
您应该能够将Language
的{{1}}属性设置为您的语言:
DataGrid
如果您将<DataGrid Language="sv" ...>
的{{1}}设置或绑定到ItemsSource
,则可以使用自定义ListView
来实现一些完全自定义的排序逻辑。
请参阅以下示例代码。
IList
IComparer