using InABox.Core; using InABox.WPF; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace InABox.DynamicGrid; public class DynamicColumnNameEditorControl : DynamicEditorControl { private TextBox TextBox = null!; private Button Edit = null!; string Value = ""; string[] ColumnNames; public override void Configure() { ColumnNames = EditorDefinition.GetColumnNames(); } protected override FrameworkElement CreateEditor() { var grid = new Grid { VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch }; grid.AddColumn(GridUnitType.Star); grid.AddColumn(GridUnitType.Auto); TextBox = new TextBox { VerticalAlignment = VerticalAlignment.Stretch, VerticalContentAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Stretch, Margin = new Thickness(0, 0, 0, 0), IsEnabled = false }; Edit = new Button { VerticalAlignment = VerticalAlignment.Stretch, VerticalContentAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Stretch, Margin = new Thickness(5, 1, 0, 1), Padding = new Thickness(5, 0, 5, 0), Width = 20, Content = "..", Focusable = false, }; Edit.Click += EditButton_Click; grid.AddChild(TextBox, 0, 0); grid.AddChild(Edit, 0, 1); return grid; } private void EditButton_Click(object sender, RoutedEventArgs e) { if(DynamicGridColumnNameSelectorGrid.SelectColumnName(ColumnNames, out var value)) { Value = value; TextBox.Text = Value; CheckChanged(); } } public override int DesiredHeight() { return 25; } public override int DesiredWidth() { return int.MaxValue; } public override void SetColor(Color color) { TextBox.Background = color.ToBrush(); } public override void SetFocus() { TextBox.Focus(); } protected override string RetrieveValue() { return Value; } protected override void UpdateValue(string value) { Value = value; TextBox.Text = value; } }