diff --git a/src/BlazorDatasheet.Core/Commands/SortRangeCommand.cs b/src/BlazorDatasheet.Core/Commands/SortRangeCommand.cs index b4b75520..8af0b0d5 100644 --- a/src/BlazorDatasheet.Core/Commands/SortRangeCommand.cs +++ b/src/BlazorDatasheet.Core/Commands/SortRangeCommand.cs @@ -20,11 +20,10 @@ public class SortRangeCommand : IUndoableCommand /// The region to sort /// The column sort options, if null the default sort (sort on column 0 ascending) will be used. /// If two column values are equal, then the next option will be used for the sort, equivalent to a ThenBy - public SortRangeCommand(IRegion region, List? sortOptions = null) + public SortRangeCommand(IRegion region, List sortOptions = null) { _region = region; - _sortOptions = sortOptions ?? new List() - { new(0, true) }; + _sortOptions = sortOptions; } /// diff --git a/src/BlazorDatasheet.Core/Data/Sheet.cs b/src/BlazorDatasheet.Core/Data/Sheet.cs index ff8e2d02..5805e23e 100644 --- a/src/BlazorDatasheet.Core/Data/Sheet.cs +++ b/src/BlazorDatasheet.Core/Data/Sheet.cs @@ -310,6 +310,9 @@ public void SortRange(IRegion? region, List? sortOptions = nu { if (region == null) return; + + sortOptions ??= [new ColumnSortOptions(0, true)]; + var beforeArgs = new BeforeRangeSortEventArgs(region, sortOptions); BeforeRangeSort?.Invoke(this, beforeArgs); var cmd = new SortRangeCommand(region, sortOptions); diff --git a/src/BlazorDatasheet.Core/Events/BeforeRangeSortEventArgs.cs b/src/BlazorDatasheet.Core/Events/BeforeRangeSortEventArgs.cs index 5e15c6a2..a7cc6d9a 100644 --- a/src/BlazorDatasheet.Core/Events/BeforeRangeSortEventArgs.cs +++ b/src/BlazorDatasheet.Core/Events/BeforeRangeSortEventArgs.cs @@ -7,9 +7,9 @@ namespace BlazorDatasheet.Core.Events; public class BeforeRangeSortEventArgs : CancelEventArgs { public IRegion Region { get; } - public IList? SortOptions { get; } + public IList SortOptions { get; } - public BeforeRangeSortEventArgs(IRegion region, IList? sortOptions) + public BeforeRangeSortEventArgs(IRegion region, IList sortOptions) { Region = region; SortOptions = sortOptions; diff --git a/test/BlazorDatasheet.Test/SheetTests/SheetTests.cs b/test/BlazorDatasheet.Test/SheetTests/SheetTests.cs index 6d7ac660..c4ebbe1b 100644 --- a/test/BlazorDatasheet.Test/SheetTests/SheetTests.cs +++ b/test/BlazorDatasheet.Test/SheetTests/SheetTests.cs @@ -141,6 +141,7 @@ public void Cancel_Before_Range_Sort_Cancels_Sorting() sheet.BeforeRangeSort += (sender, args) => { args.Cancel = true; + args.SortOptions.Should().NotBeNull(); }; sheet.SortRange(new ColumnRegion(0));