| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Media;using InABox.Core;using InABox.WPF;using Syncfusion.UI.Xaml.Grid;using Syncfusion.UI.Xaml.TreeGrid;namespace InABox.DynamicGrid;public class DynamicGridCodeColumn<TEntity> : DynamicGridEditorColumn<TEntity, CodeEditor, GridTemplateColumn, TreeGridTemplateColumn>    where TEntity : BaseObject{    protected override void Configure(GridTemplateColumn column, CodeEditor editor)    {        column.CellTemplate = CreateCellTemplate(editor, MappingName);        column.EditTemplate = CreateEditTemplate(editor, column, MappingName);    }    protected override void Configure(TreeGridTemplateColumn column, CodeEditor editor)    {        column.CellTemplate = CreateCellTemplate(editor, TreeMappingName);        column.EditTemplate = CreateEditTemplate(editor, column, TreeMappingName);    }    private DataTemplate CreateCellTemplate(CodeEditor editor, string mapping)    {        return TemplateGenerator.CreateDataTemplate        (            () =>            {                var result = new Label();                result.HorizontalContentAlignment = GetHorizontalAlignment(editor);                result.VerticalContentAlignment = GetVerticalAlignment(editor);                var binding = new Binding()                {                    Path = new PropertyPath(mapping),                };                result.SetBinding(Label.ContentProperty, binding);                return result;            }        );    }    private DataTemplate CreateEditTemplate(CodeEditor editor, GridColumnBase column, string mapping)    {        return TemplateGenerator.CreateDataTemplate        (            () =>            {                var textbox = new TextBox();                textbox.CharacterCasing = CharacterCasing.Upper;                textbox.TextAlignment = column.TextAlignment;                textbox.SetBinding(TextBox.TextProperty, new Binding()                {                    Path = new PropertyPath(mapping)                });                                textbox.SetValue(Grid.ColumnSpanProperty, 2);                textbox.Padding = new Thickness(2, 0, 0, 0);                textbox.VerticalContentAlignment = VerticalAlignment.Center;                textbox.PreviewTextInput += (sender, args) => textbox.Tag = true;                textbox.TextChanged += (sender, args) =>                {                    if (Equals(textbox.Tag, false))                    {                        textbox.SelectAll();                        textbox.Tag = true;                    }                };                textbox.SetValue(FocusManagerHelper.FocusedElementProperty, true);                                return textbox;            }        );    }    public DynamicGridCodeColumn(DynamicGridColumn definition) : base(definition)    {    }}
 |