Bug 40679 - On changing the language to Italian on device settings the data binding of slider control does not work.
Summary: On changing the language to Italian on device settings the data binding of sl...
Status: RESOLVED INVALID
Alias: None
Product: Forms
Classification: Xamarin
Component: Forms ()
Version: unspecified
Hardware: PC Mac OS
: Normal normal
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2016-04-25 17:21 UTC by Cody Beyer (MSFT)
Modified: 2016-05-17 16:37 UTC (History)
3 users (show)

Tags: ac
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED INVALID

Description Cody Beyer (MSFT) 2016-04-25 17:21:46 UTC
# Description 

The User is creating an app with a slider control with Min value as 0 and Max is 10. Slider is initialized with value 5.If the user changes the device language to Italian, the data binding does not work. Which means the value of the slider position does not change on sliding over the bar. 

# Steps to Reproduce: 

Video Link posted by User. 

https://drive.google.com/open?id=0B8xYUmuae05pRVBVS09Xc29OOHM

# Sample

https://drive.google.com/open?id=0B8xYUmuae05pTTgwNWtpZWN0Znc

# Expected Result

The behavior of slider should be consistent across cultures and locale. 

# Actual Results

Slider value does not reflect on change of slider position on bar for Italian language.
Comment 1 Paul DiPietro [MSFT] 2016-05-16 17:05:17 UTC
I actually looked into this more closely and it just seems like the bindings are set up incorrectly. Modifying the reproduction project's XAML to something like this lets the label change value as expected:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="TestCase4.test"
   xmlns:local="clr-namespace:TestCase4;assembly=TestCase4">
  <StackLayout>
    <Label BindingContext="{x:Reference Slider}" Text="{Binding Value, StringFormat='{}{0:F1}'}" />   
    <Slider BindingContext="{local:testvm}" x:Name="Slider" Maximum="10" Minimum="0" Value="{Binding Path=DValue, Mode=OneWayToSource, StringFormat='{}{0:F1}'}" />   
  </StackLayout>
</ContentPage>
Comment 2 Matteo Zoni 2016-05-16 18:04:18 UTC
In the example DValue is set to 5.
When start application slider and entry are set to 0.

https://drive.google.com/open?id=0B8xYUmuae05peGMxbnZqTzZUVjQ

As suggested , applied to my project , it means that all values ​​are set to zero
Comment 3 Paul DiPietro [MSFT] 2016-05-17 00:07:24 UTC
Try changing OneWayToSource to TwoWay (as it was) and remove of the use of StringFormat on the Slider.
Comment 4 Matteo Zoni 2016-05-17 16:37:49 UTC
Hi , if I remove the test case FormatString working properly .

In my app instead of working properly in English with StringFormat='{}{0:F1}' but not in Italian (or in any language that uses the comma as the decimal separator ) if I remove StringFormat='{}{0:F1}' I get this:

05-17 18:23:36.395 D/ProgressBar(15159): setProgress = 107
05-17 18:23:36.395 D/ProgressBar(15159): setProgress = 107, fromUser = false
05-17 18:23:36.395 D/ProgressBar(15159): mProgress = 108mIndeterminate = false, mMin = 0, mMax = 1000
05-17 18:23:36.395 D/ProgressBar(15159): setProgress = 106
05-17 18:23:36.395 D/ProgressBar(15159): setProgress = 106, fromUser = false
05-17 18:23:36.395 D/ProgressBar(15159): mProgress = 107mIndeterminate = false, mMin = 0, mMax = 1000

It reports only 6 lines but are really a lot .