123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Media.Imaging;
- using InABox.Core;
- using InABox.WPF;
- using Microsoft.Xaml.Behaviors;
- namespace InABox.DynamicGrid;
- public class DynamicGridTimeStampColumn<TEntity> : DynamicGridMaskColumn<TEntity,TimestampEditor> where TEntity : BaseObject
- {
- protected override Behavior CreateBehaviour() =>
- new TextBoxDateTimeMaskBehavior(Definition?.Format, false);
- protected override IValueConverter CreateConverter() =>
- new DateTimeToStringConverter(Definition?.Format);
-
- protected override void UpdateButtons(object? value, DynamicGridMaskColumnButton[]? buttons)
- {
- if (value is DateTime datetime && buttons?.Any() == true)
- {
- foreach (var button in buttons)
- button.Image = datetime.IsEmpty()
- ? _set
- : _clear;
- }
- }
-
- private readonly BitmapImage _clear = Wpf.Resources.delete.AsBitmapImage(20,20);
- private readonly BitmapImage _set = Wpf.Resources.tick.AsBitmapImage(20,20);
-
- protected override DynamicGridMaskColumnButton[]? CreateButtons()
- {
- return new DynamicGridMaskColumnButton[]
- {
- new DynamicGridMaskColumnButton()
- {
- Image = _set,
- Clicked = (sender,args) =>
- {
- if (args.Value is DateTime datetime)
- {
- datetime = datetime.IsEmpty()
- ? DateTime.Now
- : DateTime.MinValue;
- args.Value = datetime;
- sender.Image = datetime.IsEmpty()
- ? _set
- : _clear;
- }
- }
- }
- };
- }
-
- public DynamicGridTimeStampColumn(DynamicGridColumn definition) : base(definition)
- {
- }
- }
|