DFStringControl.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using InABox.Core;
  2. using Syncfusion.Windows.Shared;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Globalization;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Controls;
  11. namespace InABox.DynamicGrid
  12. {
  13. public class DFStringControl : DynamicFormFieldControl<DFLayoutStringField, DFLayoutStringFieldProperties, string>
  14. {
  15. private TextBox Text = null!; // late-initialising
  16. protected override FrameworkElement Create()
  17. {
  18. Text = new TextBox();
  19. Text.Text = Field.Properties.Default;
  20. Text.HorizontalContentAlignment = HorizontalAlignment.Left;
  21. Text.VerticalContentAlignment = VerticalAlignment.Center;
  22. Text.TextChanged += (sender, e) => ChangeField();
  23. return Text;
  24. }
  25. public override string GetValue() => Text.Text;
  26. public override void SetValue(string? value) => Text.Text = value;
  27. protected override bool IsEmpty() => string.IsNullOrWhiteSpace(Text.Text);
  28. }
  29. }