/// <summary>
        /// Determines whether the given set of values defines a valid range or not.
        /// A valid range adheres to this constrain: MinValue <= Value <= MaxValue.
        /// </summary>
        /// <param name="range"></param>
        /// <returns></returns>
        bool IsValidRange(UShortUpDown range)
        {
            if (range.MinValue <= range.Value && range.Value <= range.MaxValue)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        public List <WDetailSingleRowViewModel> CustomizeHeader(PropertyInfo property, string display_name, bool is_editable, object source)
        {
            WDetailSingleRowViewModel short_row = new WDetailSingleRowViewModel(display_name);

            UShortUpDown shortupdown = new UShortUpDown();

            shortupdown.IsEnabled = is_editable;

            Binding tbind = new Binding(property.Name);

            tbind.Source = source;
            tbind.Mode   = is_editable ? BindingMode.TwoWay : BindingMode.OneWay;
            tbind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;

            shortupdown.SetBinding(UShortUpDown.ValueProperty, tbind);

            short_row.PropertyControl = shortupdown;

            return(new List <WDetailSingleRowViewModel>()
            {
                short_row
            });
        }
        /// <summary>
        /// Tests all permutions for all sequences of three elements.
        /// </summary>
        /// <param name="min"></param>
        /// <param name="val"></param>
        /// <param name="max"></param>
        public void TestAllPermutations(ushort min, ushort val, ushort max)
        {
            string[,] ctrl = new string[6, 3]
            {
                { "min", "val", "max" },
                { "val", "min", "max" },
                { "val", "max", "min" },
                { "val", "min", "max" },
                { "min", "max", "val" },
                { "max", "min", "val" },
            };

            for (int i = 0; i < 6; i++)
            {
                var    range           = new UShortUpDown();
                string testPermutation = "";

                for (int j = 0; j < 3; j++)
                {
                    var itemToSet = ctrl[i, j];

                    if (string.IsNullOrEmpty(testPermutation))
                    {
                        testPermutation = itemToSet;
                    }
                    else
                    {
                        testPermutation += ", " + itemToSet;
                    }

                    switch (itemToSet)
                    {
                    case "min":
                        range.MinValue = min;
                        Assert.IsTrue(IsValidRange(range));
                        break;

                    case "val":
                        range.Value = val;
                        Assert.IsTrue(IsValidRange(range));
                        break;

                    case "max":
                        range.MaxValue = max;
                        Assert.IsTrue(IsValidRange(range));
                        break;

                    default:
                        break;
                    }
                }

                Console.WriteLine("Testing Permutation {0}: {1} - min={2}, val={3}, max={4}", i, testPermutation, min, val, max);
                Assert.IsTrue(IsValidRange(range));

                Assert.IsTrue(range.MinValue == min);
                Assert.IsTrue(range.Value == val);
                Assert.IsTrue(range.MaxValue == max);

                // Test if increment command works as expected
                while (range.MaxValue > range.Value)
                {
                    Assert.IsTrue(InputBaseUpDown.IncreaseCommand.CanExecute(null, range));
                    InputBaseUpDown.IncreaseCommand.Execute(null, range);
                }
                Assert.IsTrue(range.MaxValue == range.Value);

                // Test if decrement command works as expected
                while (range.MinValue < range.Value)
                {
                    Assert.IsTrue(InputBaseUpDown.DecreaseCommand.CanExecute(null, range));
                    InputBaseUpDown.DecreaseCommand.Execute(null, range);
                }
                Assert.IsTrue(range.MinValue == range.Value);
            }
        }