我有一个WPF4 DataGrid
(WPF4中包含的那个),其列有'Surname','First Names'等。当用户点击列标题时,例如'Surname',所有内容都会被排序根据我的文化设置正确的顺序,例如:
Anderson
Rockford
Ångström
我希望'Surname'列预先排序,所以我添加了
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="SurName" />
</CollectionViewSource.SortDescriptions>
就像Pre-sorting a DataGrid in WPF问题的答案一样。问题是,WPF现在使用不同的排序顺序,其中'Å'的排序方式类似于'A'(我猜这是美国的排序顺序):
Andersson
Ångström
Rockford
根据我的文化设置,手动点击“Surname”标题重新排序名称。
如何在预先排序DataGrid时告诉WPF使用当前的区域性设置?
答案 0 :(得分:1)
您是否尝试过设置CollectionViewSource的Culture属性?类似(干编码)根据您的评论编辑:
... in your namespaces
xmlns:glob="clr-namespace:System.Globalization;assembly=mscorlib"
....
<CollectionViewSource Culture="{x:Static glob:CultureInfo.CurrentCulture}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="SurName" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
我不确定为什么CollectionViewSource默认情况下不会使用相同的文化,但是如果不是这个应该是为你修复它的属性。
另请参阅本文,了解当目标是字符串时,绑定似乎如何使用错误的文化,也许它可以为您提供一些启示:http://www.nbdtech.com/Blog/archive/2009/02/22/wpf-data-binding-cheat-sheet-update-the-internationalization-fix.aspx