| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | using System;using System.Windows;using System.Windows.Controls;using System.Windows.Media;using System.Windows.Media.Imaging;using InABox.Core;using Syncfusion.UI.Xaml.Grid;using Image = System.Windows.Controls.Image;using Label = System.Windows.Controls.Label;namespace InABox.DynamicGrid{    public abstract class DynamicActionColumn : DynamicColumnBase    {        public DynamicActionColumnPosition Position { get; set; } = DynamicActionColumnPosition.End;        public delegate bool ActionDelegate(CoreRow? row);        public delegate FrameworkElement? ActionColumnToolTip(DynamicActionColumn column, CoreRow? row);        public ActionDelegate? Action { get; set; }        public ActionColumnToolTip? ToolTip { get; set; }        public Func<IDynamicGridSummary?>? GetSummary = null;        public Func<IDynamicGridColumnFilter?>? GetFilter = null;                public Func<CoreRow[]?, ContextMenu?>? ContextMenu { get; set; }                public string HeaderText { get; set; } = " ";        public bool VerticalHeader { get; set; }        public int Width { get; set; } = 0;        public FrameworkElement? TextToolTip(string? text)        {            if (string.IsNullOrWhiteSpace(text))                return null;            var border = new Border            {                BorderBrush = new SolidColorBrush(Colors.Gray),                BorderThickness = new Thickness(0.75),                CornerRadius = new CornerRadius(5),                Background = new SolidColorBrush(Colors.LightYellow),                Padding = new Thickness(5),                Child = new Label { Content = text }            };            return border;        }        public FrameworkElement? ImageToolTip(BitmapImage? image)        {            if (image == null)                return null;            var result = new Border            {                Background = new SolidColorBrush(Colors.LightYellow),                BorderBrush = new SolidColorBrush(Colors.Gray),                BorderThickness = new Thickness(0.75)            };            result.Child = new Image { Source = image };            return result;        }        public abstract object? Data(CoreRow? row);        public IDynamicGridSummary? Summary() => GetSummary?.Invoke();    }}
 |