12345678910111213141516171819202122232425262728293031323334353637383940 |
- using InABox.Core;
- using Syncfusion.UI.Xaml.Grid;
- namespace InABox.DynamicGrid;
- public abstract class DynamicGridEditorColumn<TEntity, TEditor, TColumn> : IDynamicGridEditorColumn
- where TEditor : class
- where TColumn : GridColumn, new()
- {
- private TColumn _column => new ();
- public TColumn Column => _column;
- public string? MappingName => _definition?.ColumnName.Replace('.', '_');
-
- GridColumn IDynamicGridEditorColumn.Column => this.Column;
-
- private DynamicGridColumn? _definition;
- public DynamicGridColumn? Definition
- {
- get => _definition;
- set
- {
- _definition = value;
- UpdateBinding(_column);
- if (value?.Editor is TEditor editor)
- Configure(_column, editor);
- }
- }
- public virtual GridSummaryColumn? Summary() => null;
- protected virtual void UpdateBinding(TColumn column)
- {
-
- }
- protected abstract void Configure(TColumn column, TEditor editor);
- }
|