DynamicGridColumn.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Windows;
  4. using InABox.Core;
  5. namespace InABox.DynamicGrid;
  6. public class ColumnNameGenerator : LookupGenerator<object>
  7. {
  8. public ColumnNameGenerator(object[] items) : base(items)
  9. {
  10. //DynamicGridColumns cols = new DynamicGridColumns();
  11. //cols.ExtractColumns(type, "");
  12. //foreach (DynamicGridColumn col in cols.Where(x => (x.Editor != null) && (x.Editor.Visible != Visible.Disabled)))
  13. // AddValue(col.ColumnName, col.ColumnName);
  14. }
  15. }
  16. public class DynamicGridColumn : DynamicColumnBase
  17. {
  18. public DynamicGridColumn()
  19. {
  20. Editor = new NullEditor();
  21. }
  22. [ComboLookupEditor(typeof(ColumnNameGenerator), Visible = Visible.Default)]
  23. [EditorSequence(1)]
  24. public string ColumnName { get; set; }
  25. [EditorSequence(2)]
  26. [IntegerEditor(Visible = Visible.Default)]
  27. public int Width { get; set; }
  28. [EditorSequence(3)]
  29. [TextBoxEditor(Visible = Visible.Default)]
  30. public string Caption { get; set; }
  31. [EditorSequence(4)]
  32. [TextBoxEditor(Width = 60, Visible = Visible.Default)]
  33. public string Format { get; set; }
  34. [EnumLookupEditor(typeof(Alignment), Width = 100, Visible = Visible.Default)]
  35. [EditorSequence(5)]
  36. public Alignment Alignment { get; set; }
  37. public BaseEditor Editor { get; set; }
  38. public VerticalAlignment VerticalAlignment() => Alignment.VerticalAlignment();
  39. public HorizontalAlignment HorizontalAlignment(Type datatype) => Alignment.HorizontalAlignment(datatype);
  40. public override string ToString()
  41. {
  42. return ColumnName;
  43. }
  44. public static DynamicGridColumn FromCoreGridColumn(CoreGridColumn column)
  45. {
  46. return new DynamicGridColumn
  47. {
  48. ColumnName = column.Property.Name,
  49. Width = column.Width,
  50. Caption = column.Caption,
  51. Format = column.Format,
  52. Alignment = column.Alignment,
  53. Editor = column.Editor.CloneEditor()
  54. };
  55. }
  56. }