DFDoubleControl.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using InABox.Core;
  2. using Syncfusion.Windows.Shared;
  3. using System.Collections.Generic;
  4. using System.Globalization;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. namespace InABox.DynamicGrid;
  10. public class DFDoubleControl : DynamicFormFieldControl<DFLayoutDoubleField, DFLayoutDoubleFieldProperties, double, double?>
  11. {
  12. private DoubleTextBox Double = null!; // late-initialising
  13. protected override FrameworkElement Create()
  14. {
  15. Double = new DoubleTextBox();
  16. Double.Value = Field.Properties.Default;
  17. Double.HorizontalContentAlignment = HorizontalAlignment.Center;
  18. Double.VerticalContentAlignment = VerticalAlignment.Center;
  19. Double.VerticalAlignment = VerticalAlignment.Stretch;
  20. Double.ValueChanged += (sender, e) => ChangeField();
  21. Double.IsScrollingOnCircle = false;
  22. return Double;
  23. }
  24. public override void SetSerializedValue(double? value)
  25. {
  26. Double.Value = value;
  27. }
  28. public override double? GetSerializedValue()
  29. {
  30. return Double.Value ?? 0.0;
  31. }
  32. public override double GetValue()
  33. {
  34. return Double.Value ?? 0.0;
  35. }
  36. public override void SetValue(double value)
  37. {
  38. Double.Value = value;
  39. }
  40. protected override bool IsEmpty() => Double.Value == null;
  41. }