Exemplo n.º 1
0
        private void BindCulture()
        {
            var source = GetCultureData();

            CultureDropDown.DataSource     = source;
            CultureDropDown.DataTextField  = "Text";
            CultureDropDown.DataValueField = "Id";
            CultureDropDown.DataBind();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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
                }
            };
        }