12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using InABox.Core;
- using Syncfusion.Windows.Shared;
- using System;
- using System.Collections.Generic;
- using System.Globalization;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- namespace InABox.DynamicGrid
- {
- public class DFTimeControl : DynamicFormFieldControl<DFLayoutTimeField, DFLayoutTimeFieldProperties, TimeSpan>
- {
- private DateTimeEdit Time = null!; // late-initialising
- protected override FrameworkElement Create()
- {
- Time = new DateTimeEdit();
- Time.DateTimeFormat = CultureInfo.CurrentCulture.DateTimeFormat;
- Time.Pattern = DateTimePattern.ShortTime;
- Time.DateTime = DateTime.MinValue.Add(Field.Properties.Default);
- Time.DateTimeChanged += (sender, e) => ChangeField();
- Time.EnableMouseWheelEdit = false;
- return Time;
- }
- public override void Deserialize(string serialized)
- {
- if (TimeSpan.TryParseExact(serialized, "c", CultureInfo.InvariantCulture, TimeSpanStyles.None,
- out TimeSpan t))
- SetValue(t);
- }
- public override string Serialize() => GetValue().ToString("c");
- public override TimeSpan GetValue() => Time.DateTime?.TimeOfDay ?? TimeSpan.Zero;
- public override void SetValue(TimeSpan value) => Time.DateTime = DateTime.MinValue.Add(value);
- protected override bool IsEmpty() => Time.DateTime == null;
- }
- }
|