public void Slider_ValueChanged(object sender, ValueChangedEventArgs e) { Slider ctrl = (Slider)sender; ComosWebSDK.UI.UIEdit b = (ComosWebSDK.UI.UIEdit)ctrl.BindingContext; var step = Math.Round(e.NewValue / 20); ctrl.Value = step * 20; CheckValue(b.NestedName, ((int)e.NewValue).ToString(), b.Value, b.Text); }
public void Txt_TextChanged(object sender, TextChangedEventArgs e) { CustomEntry ctrl = (CustomEntry)sender; string nestedname = ""; string oldvalue = ""; string description = ""; ComosWebSDK.UI.UIEdit b = (ComosWebSDK.UI.UIEdit)ctrl.BindingContext; nestedname = b.NestedName; oldvalue = b.Value; description = b.Text; CheckValue(nestedname, e.NewTextValue, oldvalue, description); }
public View UpdateAttributesUI(ComosWebSDK.UI.UIEdit ui) { if (!ui.ReadOnly) { editablevalues.Add(ui); } StackLayout layout = new StackLayout() { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, //VerticalOptions = LayoutOptions.FillAndExpand, }; var lbl = new Label() { Text = ui.Text, WidthRequest = App.WidthPixels / 3, VerticalTextAlignment = TextAlignment.Center, HorizontalTextAlignment = TextAlignment.Start, }; layout.Children.Add(lbl); if (ui.HasUnit && ui.Unit == "%") { if (ui.Value == "") { ui.Value = "0"; } // Use a slider bar. Slider slider = new Slider { Minimum = 0, Maximum = 100, HorizontalOptions = LayoutOptions.FillAndExpand, BindingContext = ui, // work around xamarin slider bug https://bugzilla.xamarin.com/show_bug.cgi?id=54887 Value = double.Parse(ui.Value), IsEnabled = !ui.ReadOnly, }; slider.ValueChanged += Slider_ValueChanged; var lblpercent = new Label() { Text = ui.Value, VerticalTextAlignment = TextAlignment.Center, BindingContext = slider, }; lblpercent.SetBinding( Label.TextProperty, new Binding("Value", BindingMode.OneWay, null, null, "{0}")); // Try out work around xamarin slider bug // https://bugzilla.xamarin.com/show_bug.cgi?id=54887 // Does not work // slider.Value = slider.Value + 0.1; if (ui.CachedValue != "" && ui.CachedValue != ui.Value) { slider.Value = int.Parse(ui.CachedValue); } layout.Children.Add(slider); layout.Children.Add(lblpercent); } else { if (ui.ReadOnly) { var txt = new Label() { Text = ui.Value, }; layout.Children.Add(txt); } else { var txt = new CustomEntry() { Text = ui.Value, WidthRequest = App.WidthPixels * (2 / 3), HorizontalOptions = LayoutOptions.FillAndExpand, BindingContext = ui, }; if (ui.CachedValue != "" && ui.CachedValue != ui.Value) { txt.Text = ui.CachedValue; txt.TextColor = (Color)App.Current.Resources["spec-only-cache"]; CheckValue(ui.NestedName, ui.CachedValue, ui.Value, ui.Text); } else { txt.Text = ui.Value; } txt.TextChanged += Txt_TextChanged; layout.Children.Add(txt); } if (ui.HasUnit) { layout.Children.Add(new Label() { Text = ui.Unit, }); } } AbsoluteLayout.SetLayoutBounds(layout, new Rectangle( ui.x, ui.y, ui.width, ui.height)); return(layout); }