Browse Source

Added some utiltiy methods

Kenric Nugteren 4 tháng trước cách đây
mục cha
commit
8c1e69a783

+ 12 - 0
InABox.Core/CoreTable/CoreTable.cs

@@ -61,6 +61,17 @@ namespace InABox.Core
             LoadColumns(type);
         }
         
+        /// <summary>
+        /// Add a new column of type <typeparamref name="TData"/> and column name <paramref name="column"/>.
+        /// </summary>
+        public void AddColumn<TData>(string column)
+        {
+            Columns.Add(new CoreColumn(typeof(TData), column));
+        }
+        public void AddColumn(Type dataType, string column)
+        {
+            Columns.Add(new CoreColumn(dataType, column));
+        }
         public void AddColumn<T>(Expression<Func<T, object>> column)
         {
             Columns.Add(
@@ -71,6 +82,7 @@ namespace InABox.Core
                 }
             );
         }
+        public bool HasColumn(string column) => Columns.Any(x => x.ColumnName == column);
         
         public CoreRow NewRow(bool populate = false)
         {

+ 12 - 0
inabox.wpf/DynamicGrid/DynamicGridColumn/DynamicGridColumn.cs

@@ -63,6 +63,18 @@ public class DynamicGridColumn : DynamicColumnBase
         Alignment = column.Alignment;
         Editor = column.Editor.CloneEditor();
     }
+    public DynamicGridColumn(string column, Type dataType, BaseEditor? editor = null)
+    {
+        editor ??= EditorUtils.GetEditor(dataType) ?? new NullEditor();
+
+        ColumnName = column;
+        
+        Width = editor.Width;
+        Caption = editor.Caption;
+        Format = editor.Format;
+        Alignment = editor.Alignment;
+        Editor = editor.CloneEditor();
+    }
 
     [DynamicColumnNameEditor(Visible = Visible.Default)]
     [EditorSequence(1)]