Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit b3600a2

Browse files
authored
Binding convert looks at right culture setting (#15240)
* Binding convert looks at right culture setting * Update BindingExpressionTests.cs
1 parent 7efdd2d commit b3600a2

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

Xamarin.Forms.Core.UnitTests/BindingExpressionTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public void ValidPaths(
123123
[TestCaseSource(nameof(TryConvertWithNumbersAndCulturesCases))]
124124
public void TryConvertWithNumbersAndCultures(object inputString, CultureInfo culture, object expected)
125125
{
126-
CultureInfo.CurrentUICulture = culture;
126+
CultureInfo.CurrentCulture = culture;
127127
BindingExpression.TryConvert(ref inputString, Entry.TextProperty, expected.GetType(), false);
128128

129129
Assert.AreEqual(expected, inputString);

Xamarin.Forms.Core.UnitTests/BindingUnitTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2000,7 +2000,7 @@ public void Convert()
20002000
#if !WINDOWS_PHONE
20012001
[TestCase("en-US", "0.5", 0.5, 0.9, "0.9")]
20022002
[TestCase("pt-PT", "0,5", 0.5, 0.9, "0,9")]
2003-
public void ConvertIsCultureInvariant(string culture, string sliderSetStringValue, double sliderExpectedDoubleValue, double sliderSetDoubleValue, string sliderExpectedStringValue)
2003+
public void ConvertIsCultureAware(string culture, string sliderSetStringValue, double sliderExpectedDoubleValue, double sliderSetDoubleValue, string sliderExpectedStringValue)
20042004
{
20052005
System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
20062006

Xamarin.Forms.Core.UnitTests/TypedBindingUnitTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1272,7 +1272,7 @@ public void Convert()
12721272
#if !WINDOWS_PHONE
12731273
[TestCase("en-US", "0.5", 0.5, 0.9, "0.9")]
12741274
[TestCase("pt-PT", "0,5", 0.5, 0.9, "0,9")]
1275-
public void ConvertIsCultureInvariant(string culture, string sliderSetStringValue, double sliderExpectedDoubleValue, double sliderSetDoubleValue, string sliderExpectedStringValue)
1275+
public void ConvertIsCultureAware(string culture, string sliderSetStringValue, double sliderExpectedDoubleValue, double sliderSetDoubleValue, string sliderExpectedStringValue)
12761276
{
12771277
System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
12781278

Xamarin.Forms.Core/BindingExpression.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ internal static bool TryConvert(ref object value, BindableProperty targetPropert
462462
var stringValue = value as string ?? string.Empty;
463463
// see: https://bugzilla.xamarin.com/show_bug.cgi?id=32871
464464
// do not canonicalize "*.[.]"; "1." should not update bound BindableProperty
465-
if (stringValue.EndsWith(CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator, StringComparison.Ordinal) && DecimalTypes.Contains(convertTo))
465+
if (stringValue.EndsWith(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, StringComparison.Ordinal) && DecimalTypes.Contains(convertTo))
466466
{
467467
value = original;
468468
return false;
@@ -475,7 +475,7 @@ internal static bool TryConvert(ref object value, BindableProperty targetPropert
475475
return false;
476476
}
477477

478-
value = Convert.ChangeType(value, convertTo, CultureInfo.CurrentUICulture);
478+
value = Convert.ChangeType(value, convertTo, CultureInfo.CurrentCulture);
479479

480480
return true;
481481
}

0 commit comments

Comments
 (0)