2011-01-19 2 views
2

Есть ли простой способ правильно отсортировать числовые данные в datagrid?Silverlight Datagrid Числовая сортировка

Пояснение. Когда вы нажимаете на заголовок столбца с данными 1,5,10,2, он сортирует его как текст (1,10,2,5).

Я прочитал, что вы можете реализовать ICollectionView, чтобы создать свою собственную сортировку. Прежде чем идти по этому пути, я хочу убедиться, что нет более простого способа.

ответ

3

КОЛЛЕГА решить мою проблему. Упаковывая исходный объект в оболочку, вы можете затем определить SortBLANK, который просто возвращает данные как int вместо строки. Затем я использую SortMemberPath для настройки сортировки для этого вызова. Обратите внимание, что это работает только для обработки только числовой сортировки.

XAML (Partial):

<sdk:DataGrid.Columns> 
    <sdk:DataGridTextColumn Header="MAC" FontSize="12" Binding="{Binding macaddr}" Width="100"/> 
    <sdk:DataGridTextColumn Header="Upload Rate" SortMemberPath="SortUpload" FontSize="12" Binding="{Binding uploadRate}" Width="3*"/> 
    <sdk:DataGridTextColumn Header="Download Rate" SortMemberPath="SortDownload" FontSize="12" Binding="{Binding downloadRate}" Width="3*"/> 
</sdk:DataGrid.Columns> 

Code-Behind (Partial):

public class OnlineDevicesWrapper 
    { 
     public string macaddr{get;set;} 
     public string uploadRate { get; set; } 
     public string downloadRate { get; set; } 

     public int SortUpload 
     { 
      get 
      { 
       return int.Parse(uploadRate); 
      } 
     } 

     public int SortDownload 
     { 
      get 
      { 
       return int.Parse(downloadRate); 
      } 
     } 
    } 
2

Что вы хотите, это натуральный сортировщик строк, используя интерфейс IComparer. Есть несколько решений C#, я перечислил несколько. Обратите внимание, что я не думаю, что любой из них специально ориентирован на Silverlight, хотя у вас не должно быть слишком много проблем с их использованием в Silverlight.

How to achieve Natural(human alpha-numeric) Sorting, for silverlight datagrids using ViewModel?

http://www.codeproject.com/KB/string/NaturalSortComparer.aspx

Natural Sort Order in C#

http://www.codeproject.com/KB/recipes/csnsort.aspx

Смежные вопросы