private void BindCulture() { var source = GetCultureData(); CultureDropDown.DataSource = source; CultureDropDown.DataTextField = "Text"; CultureDropDown.DataValueField = "Id"; CultureDropDown.DataBind(); }
public MaskedTextBoxSection() { DefaultSpacing = new Size(5, 5); Padding = new Padding(10); var enabledCheckBox = new CheckBox { Text = "Enabled", Checked = true }; enabledCheckBox.CheckedChanged += (sender, e) => Set(m => m.Enabled = enabledCheckBox.Checked == true); var readOnlyCheckBox = new CheckBox { Text = "ReadOnly", Checked = false }; readOnlyCheckBox.CheckedChanged += (sender, e) => Set(m => m.ReadOnly = readOnlyCheckBox.Checked == true); var tb = new NumericMaskedTextBox <double> { Value = rememberValue ? lastValue : 123.456 }; tb.ValueChanged += (sender, e) => lastValue = tb.Value; var l = new Label(); l.TextBinding.Bind(Binding.Property(tb, c => c.Value).Convert(r => "Value: " + Convert.ToString(r))); var cultureSelector = new CultureDropDown(); cultureSelector.SelectedValueBinding.Bind(tb, s => s.Culture); var rememberCheckBox = new CheckBox { Text = "Remember Value", Checked = rememberValue }; rememberCheckBox.CheckedChanged += (sender, e) => rememberValue = rememberCheckBox.Checked == true; AddAutoSized(enabledCheckBox); AddAutoSized(readOnlyCheckBox); BeginGroup("FixedMaskedTextProvider", padding: 10); AddAutoSized(new MaskedTextBox(new FixedMaskedTextProvider("(999) 000-0000")) { ShowPromptMode = ShowPromptMode.OnFocus, PlaceholderText = "(123) 456-7890" }); AddAutoSized(new MaskedTextBox <DateTime>(new FixedMaskedTextProvider <DateTime>("&&/90/0000") { ConvertToValue = DateTime.Parse })); AddAutoSized(new MaskedTextBox(new FixedMaskedTextProvider(">L0L 0L0"))); AddAutoSized(new MaskedTextBox { InsertMode = InsertKeyMode.Toggle }); EndGroup(); BeginGroup("NumericMaskedTextBox<double>", padding: 10); AddSeparateRow(tb, l, rememberCheckBox, null); AddSeparateRow("Culture:", cultureSelector, null); BeginHorizontal(); EndHorizontal(); EndGroup(); AddSpace(); }
public NumericStepperSection() { var numeric = new NumericStepper { Width = 200 }; LogEvents(numeric); var enabled = new CheckBox { Text = "Enabled" }; enabled.CheckedBinding.Bind(numeric, n => n.Enabled); var readOnly = new CheckBox { Text = "ReadOnly" }; readOnly.CheckedBinding.Bind(numeric, n => n.ReadOnly); var minValue = new NumericStepper { Enabled = false, Value = -1000 }; var minBinding = minValue.ValueBinding.Bind(numeric, n => n.MinValue, DualBindingMode.Manual); var chkMinValue = new CheckBox { Text = "MinValue" }; chkMinValue.CheckedBinding.Convert(r => r == true ? DualBindingMode.OneWayToSource : DualBindingMode.Manual).Bind(minBinding, m => m.Mode); chkMinValue.CheckedBinding.Bind(minValue, m => m.Enabled); chkMinValue.CheckedBinding.Convert(r => r == false ? double.MinValue : minValue.Value).Bind(numeric, m => m.MinValue); var maxValue = new NumericStepper { Enabled = false, Value = 1000 }; var maxBinding = maxValue.ValueBinding.Bind(numeric, (n) => n.MaxValue, DualBindingMode.Manual); var chkMaxValue = new CheckBox { Text = "MaxValue" }; chkMaxValue.CheckedBinding.Convert(r => r == true ? DualBindingMode.OneWayToSource : DualBindingMode.Manual).Bind(maxBinding, m => m.Mode); chkMaxValue.CheckedBinding.Bind(maxValue, m => m.Enabled); chkMaxValue.CheckedBinding.Convert(r => r == false ? double.MaxValue : maxValue.Value).Bind(numeric, m => m.MaxValue); var decimalPlaces = new NumericStepper { MaxValue = 15, MinValue = 0 }; var decimalBinding = decimalPlaces.ValueBinding.Convert(r => (int)r, r => r).Bind(numeric, n => n.DecimalPlaces); var maxDecimalPlaces = new NumericStepper { MaxValue = 15, MinValue = 0 }; var maxDecimalBinding = maxDecimalPlaces.ValueBinding.Convert(r => (int)r, r => r).Bind(numeric, n => n.MaximumDecimalPlaces); maxDecimalBinding.Changed += (sender, e) => decimalBinding.Update(BindingUpdateMode.Destination); decimalBinding.Changed += (sender, e) => maxDecimalBinding.Update(BindingUpdateMode.Destination); var formatString = new TextBox(); Func <Exception, bool> valueChanged = ex => { formatString.BackgroundColor = ex == null ? SystemColors.ControlBackground : Colors.Red; return(true); // we handle all exceptions }; formatString.TextBinding.Bind(Binding.Property(numeric, n => n.FormatString).CatchException(valueChanged)); formatString.TextBinding.Convert(c => string.IsNullOrEmpty(c)).Bind(decimalPlaces, d => d.Enabled); formatString.TextBinding.Convert(c => string.IsNullOrEmpty(c)).Bind(maxDecimalPlaces, d => d.Enabled); var cultureDropDown = new CultureDropDown(); cultureDropDown.SelectedValueBinding.Bind(numeric, c => c.CultureInfo); var wrap = new CheckBox { Text = "Wrap" }; wrap.CheckedBinding.Bind(numeric, n => n.Wrap); var increment = new NumericStepper { MaximumDecimalPlaces = 15 }; increment.ValueBinding.Bind(numeric, n => n.Increment); var options1 = new StackLayout { Spacing = 5, Orientation = Orientation.Horizontal, VerticalContentAlignment = VerticalAlignment.Center, Items = { enabled, readOnly, wrap } }; var options2 = new StackLayout { Spacing = 5, Orientation = Orientation.Horizontal, VerticalContentAlignment = VerticalAlignment.Center, Items = { chkMinValue, minValue, chkMaxValue, maxValue, "Increment", increment } }; var options3 = new StackLayout { Spacing = 5, Orientation = Orientation.Horizontal, VerticalContentAlignment = VerticalAlignment.Center, Items = { "DecimalPlaces", decimalPlaces, "MaximumDecimalPlaces", maxDecimalPlaces } }; Content = new StackLayout { Spacing = 5, HorizontalContentAlignment = HorizontalAlignment.Center, Items = { options1, options2, options3, TableLayout.Horizontal(5,"FormatString", formatString, "CultureInfo", cultureDropDown), "Result:", numeric } }; }