按整数或浮点数值对DataGridTextColumn进行排序,而不是按原始字符串排序。
创始人
2024-08-26 15:00:27
0

要按整数或浮点数值对DataGridTextColumn进行排序,可以通过自定义排序规则来实现。以下是一个代码示例:

首先,创建一个自定义的DataGridTextColumn类,该类继承自DataGridTextColumn,并添加一个SortingComparer属性,用于指定排序规则。

public class NumericDataGridTextColumn : DataGridTextColumn
{
    public IComparer SortingComparer { get; set; }

    protected override System.Windows.FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
    {
        var element = base.GenerateElement(cell, dataItem);
        return element;
    }

    protected override System.Windows.FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)
    {
        var element = base.GenerateEditingElement(cell, dataItem);
        return element;
    }

    protected override System.Windows.Data.BindingBase PrepareBinding(DataGridColumn column)
    {
        var binding = base.PrepareBinding(column) as Binding;
        if (binding != null && SortingComparer != null)
        {
            binding.Converter = new NumericValueConverter(SortingComparer);
        }
        return binding;
    }
}

public class NumericValueConverter : IValueConverter
{
    private IComparer _comparer;

    public NumericValueConverter(IComparer comparer)
    {
        _comparer = comparer;
    }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}

然后,可以使用这个自定义的NumericDataGridTextColumn来替换原始的DataGridTextColumn,并指定一个排序规则。以下是一个使用整数排序规则的示例:

var column = new NumericDataGridTextColumn();
column.SortingComparer = Comparer.Default; // 使用整数排序规则

dataGrid.Columns.Add(column);

使用浮点数排序规则的示例:

var column = new NumericDataGridTextColumn();
column.SortingComparer = Comparer.Default; // 使用浮点数排序规则

dataGrid.Columns.Add(column);

通过使用自定义的NumericDataGridTextColumn类和适当的排序规则,可以按整数或浮点数值对DataGridTextColumn进行排序,而不是按原始字符串排序。

相关内容

热门资讯

黑科技辅助!wepoke软件靠... 您好,wepoke软件靠谱这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
黑科技辅助!wepoke插件,... 黑科技辅助!wepoke插件,(WePoKe有规律)原来真的有挂,辅助教程(有挂透视)-哔哩哔哩是一...
黑科技辅助!wepoke黑科技... 黑科技辅助!wepoke黑科技是啥,(wepoke德州扑克)原来真的有挂,详细教程(有挂分享)-哔哩...
一分钟了解!gg扑克有假,(扑... 一分钟了解!gg扑克有假,(扑克时间)原来真的有挂,软件教程(了解有挂)-哔哩哔哩;一分钟了解!gg...
黑科技辅助!wepoke私人局... 您好,wepoke私人局有挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
科普攻略!微扑克辅牌器,(新微... 科普攻略!微扑克辅牌器,(新微扑克)原来真的有挂,可靠技巧(有挂解惑)-哔哩哔哩是一款可以让一直输的...
黑科技辅助!wepoke有辅助... 黑科技辅助!wepoke有辅助软件,(WePoKe能胜)原来真的有挂,必胜教程(有挂详情)-哔哩哔哩...
黑科技辅助!wepoke软件透... 黑科技辅助!wepoke软件透明挂合法,(WePoKe胜率)原来真的有挂,系统教程(有挂规律)-哔哩...
黑科技辅助!WePoKe透明挂... 您好:WePoKe透明挂这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的...
分享个大家!云扑克是否有外挂,... 分享个大家!云扑克是否有外挂,(云扑克软件)原来真的有挂,新2025版(真实有挂)-哔哩哔哩是一款可...