IDigitalFormField.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using InABox.Core;
  3. using Xamarin.Forms;
  4. namespace PRS.Mobile
  5. {
  6. public class DigitalFormViewChangedArgs
  7. {
  8. public DFLayoutField? Definition { get; private set; }
  9. public object? Value { get; private set; }
  10. public DigitalFormViewChangedArgs(DFLayoutField? definition, object? value)
  11. {
  12. Definition = definition;
  13. Value = value;
  14. }
  15. }
  16. public delegate void DigitalFormViewChangedHandler(IDigitalFormField sender, DigitalFormViewChangedArgs args);
  17. public interface IDigitalFormField
  18. {
  19. object Value { get; set; }
  20. event DigitalFormViewChangedHandler? ValueChanged;
  21. void Deserialize(DFLoadStorageEntry entry);
  22. void Serialize(DFSaveStorageEntry entry);
  23. bool IsEmpty { get; }
  24. bool ReadOnly { get; set; }
  25. Color BackgroundColor { get; set; }
  26. }
  27. public interface IDigitalFormField<TDefinition,TProperties,TValue, TSerialized> : IDigitalFormControl<TDefinition>, IDigitalFormField
  28. where TDefinition : DFLayoutField<TProperties>
  29. where TProperties : DFLayoutFieldProperties<TValue, TSerialized>, new()
  30. {
  31. TValue Value { get; set; }
  32. object IDigitalFormField.Value
  33. {
  34. get => Value;
  35. set => Value = (TValue)value;
  36. }
  37. }
  38. }