Предварительная сортировка DataGrid в WPF в соответствии с локализованным порядком сортировки - PullRequest
2 голосов
/ 09 декабря 2010

У меня есть WPF4 DataGrid (тот, который входит в WPF4) со столбцами «Фамилия», «Имена» и т. Д. Когда пользователь щелкает заголовок столбца, например «Фамилия», все сортируется в правой заказать в соответствии с моими настройками культуры, например:

Anderson
Rockford
Ångström

Я хочу, чтобы столбец «Фамилия» был предварительно отсортирован, поэтому я добавил

    <CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="SurName" />
    </CollectionViewSource.SortDescriptions>

точно так же, как в ответе на Предварительная сортировка DataGrid в WPF вопрос. Проблема в том, что WPF теперь использует другой порядок сортировки, где «Å» сортируется как «A» (я думаю, это порядок сортировки в США):

Andersson
Ångström
Rockford

Ручной щелчок заголовка «Фамилия» приводит к повторной сортировке имен, на этот раз в соответствии с моими настройками культуры.

Как мне сказать WPF использовать текущий параметр культуры при предварительной сортировке DataGrid?

1 Ответ

1 голос
/ 09 декабря 2010

Вы пытались установить свойство Culture CollectionSSource?Что-то вроде (в сухом коде) Отредактировано за ваш комментарий :

... 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

Или этот вопрос: Привязки WPF XAML и отображение CurrentCulture

...