Silverlight Datagrid 数字排序
有没有更简单的方法来正确排序数据网格中的数字数据?
说明 - 当您单击包含数据 1,5,10,2 的列标题时,它会将其排序为文本 (1,10,2,5)。
我读到您可以实现 ICollectionView 来创建您自己的自定义排序。在我走这条路之前,我想确保没有更简单的方法。
Is there simpler way to correctly sort numeric data in a datagrid?
Explanation - When you click on a column header with data 1,5,10,2 it sorts it as text (1,10,2,5).
I have read that you can implement ICollectionView, to create your own custom sorting. Before I go down that path, I want to make sure there isn't an easier way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一位同事解决了我的问题。通过将源对象包装在包装器中,您可以定义一个 SortBLANK,它仅将数据返回为 int 而不是字符串。然后,我使用 SortMemberPath 来设置该调用的排序。请注意,这仅适用于仅数字排序的问题。
XAML(部分):
代码隐藏(部分):
A co-worker solved my problem. By wrapping the source object in a wrapper, you can then define a SortBLANK, which just returns the data as int instead of string. I then use SortMemberPath to set the sorting for that call. Note, this only works for the problem of numeric only sorting.
XAML(Partial):
Code-Behind(Partial):
您想要的是使用 IComparer 接口的自然字符串排序比较器。有多种 C# 解决方案,我列出了一些。请注意,我认为它们中的任何一个都不是专门针对 Silverlight 的,尽管您在 Silverlight 中使用它们应该不会有太多麻烦。
如何实现自然(人类字母数字)使用 ViewModel 对 silverlight 数据网格进行排序?
http://www.codeproject. com/KB/string/NaturalSortComparer.aspx
C# 中的自然排序顺序
http://www.codeproject.com/KB/recipes/csnsort.aspx
What you want is a natural string sort comparer, using the IComparer interface. There are several C# solutions out there, I've listed a few. Note that I don't think any of them are geared towards Silverlight specifically, though you shouldn't have too much trouble using them in 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