Apply NumberFormat changes to NumericUpDown (#20248)

* Add NumericUpDown NumberFormat failing test

* Force text update when NumberFormat has changed

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
This commit is contained in:
dpse
2025-12-17 01:45:40 +01:00
committed by GitHub
parent 81165c1ea8
commit 12d7ff1bfc
2 changed files with 22 additions and 1 deletions
@@ -450,7 +450,7 @@ namespace Avalonia.Controls
{
if (IsInitialized)
{
SyncTextAndValueProperties(false, null);
SyncTextAndValueProperties(false, null, true);
}
}
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reactive.Subjects;
using Avalonia.Controls.Templates;
@@ -80,6 +81,26 @@ namespace Avalonia.Controls.UnitTests
});
}
[Fact]
public void NumberFormat_Is_Applied_Immediately()
{
RunTest((control, textbox) =>
{
const decimal value = 10.11m;
var initialNumberFormat = new NumberFormatInfo { NumberDecimalSeparator = "." };
var newNumberFormat = new NumberFormatInfo { NumberDecimalSeparator = ";" };
// Establish and verify initial conditions.
control.NumberFormat = initialNumberFormat;
control.Value = value;
Assert.Equal(value.ToString(initialNumberFormat), control.Text);
// Check that NumberFormat is applied.
control.NumberFormat = newNumberFormat;
Assert.Equal(value.ToString(newNumberFormat), control.Text);
});
}
public static IEnumerable<object[]> Increment_Decrement_TestData()
{
// if min and max are not defined and value was null, 0 should be ne new value after spin