diff --git a/src/Ursa/Controls/Pagination/Pagination.cs b/src/Ursa/Controls/Pagination/Pagination.cs index cac9b54..acdd98a 100644 --- a/src/Ursa/Controls/Pagination/Pagination.cs +++ b/src/Ursa/Controls/Pagination/Pagination.cs @@ -33,13 +33,23 @@ public class Pagination: TemplatedControl private NumericIntUpDown? _quickJumpInput; public static readonly StyledProperty CurrentPageProperty = AvaloniaProperty.Register( - nameof(CurrentPage)); - + nameof(CurrentPage) , coerce: CoerceCurrentPage); + public int? CurrentPage { get => GetValue(CurrentPageProperty); set => SetValue(CurrentPageProperty, value); } + + private static int? CoerceCurrentPage(AvaloniaObject arg1, int? arg2) + { + if (arg2 is null) return null; + if (arg1 is Pagination p) + { + arg2 = MathHelpers.SafeClamp(arg2.Value, 1, p.PageCount + 1); + } + return arg2; + } private void OnCurrentPageChanged(AvaloniaPropertyChangedEventArgs args) {