DataGrid sortng字符串,包含WPS中的数字c#

时间:2016-06-04 22:32:45

标签: c# wpf sorting datagrid

我在wpf datagrig中排序数据时遇到问题。 我有ID列,带有字符串,例如:E1,E2,E10,E3,E9,E4,E5 我希望它是这样的分类器:E1,E2,E3,E4,E5,E9,E10 但是它会像这样对它进行排序:E1,E10,E2,E3,E4,E5,E9

这是我使用的代码:

<DataGridTemplateColumn SortMemberPath="ID" CanUserSort="true" SortDirection="Ascending" Header="IDs" Width="Auto" IsReadOnly="True">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                                <TextBox Width="Auto" IsReadOnly="True" Text="{Binding Path=UserID}"></TextBox>
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

如果有人可以帮我提供很棒的代码。谢谢。

1 个答案:

答案 0 :(得分:2)

它正在进行排序,因为它将其排序为字符串,按字母顺序对值进行排序。

如果你绝对必须拥有&#34; E&#34; (或其他任何)与数字,尝试实现自己的自定义排序规则,如下所述:

https://stackoverflow.com/a/2130557/1758369

显然你的算法会有所不同,但这是一般的想法。