|
|
@@ -7,6 +7,7 @@ using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.ComponentModel;
|
|
|
using System.Linq;
|
|
|
+using System.Numerics;
|
|
|
using System.Runtime.CompilerServices;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
@@ -17,7 +18,8 @@ using System.Windows.Media;
|
|
|
|
|
|
namespace InABox.DynamicGrid;
|
|
|
|
|
|
-public class NumericDynamicGridColumnFilter(IBaseDynamicGrid grid, DynamicColumnBase column) : CheckBoxDynamicGridColumnFilter
|
|
|
+public class NumericDynamicGridColumnFilter<T>(IBaseDynamicGrid grid, DynamicColumnBase column) : CheckBoxDynamicGridColumnFilter
|
|
|
+ where T : struct, INumber<T>
|
|
|
{
|
|
|
public IBaseDynamicGrid Grid { get; set; } = grid;
|
|
|
public DynamicColumnBase Column { get; set; } = column;
|
|
|
@@ -29,7 +31,10 @@ public class NumericDynamicGridColumnFilter(IBaseDynamicGrid grid, DynamicColumn
|
|
|
.Distinct()
|
|
|
.Select(x => new FilterItem(x, x?.ToString() ?? "", this))
|
|
|
.ToArray();
|
|
|
- Array.Sort(items, (a, b) => (a.Value as IComparable)!.CompareTo(b.Value));
|
|
|
+ Array.Sort(items, (a, b) =>
|
|
|
+ {
|
|
|
+ return ((T?)a.Value ?? default).CompareTo((T?)b.Value ?? default);
|
|
|
+ });
|
|
|
return items;
|
|
|
}
|
|
|
|