|
@@ -966,144 +966,31 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
|
|
|
.AddBinding(new Binding(sColName))));
|
|
|
}
|
|
|
|
|
|
- private void LoadActionColumns(DynamicActionColumnPosition position)
|
|
|
+ private void ApplyFilterStyle(GridColumn column, bool filtering, bool isactioncolumn)
|
|
|
{
|
|
|
- for (var i = 0; i < ActionColumns.Count; i++)
|
|
|
+ var filterstyle = new Style();
|
|
|
+ if (filtering)
|
|
|
{
|
|
|
- var column = ActionColumns[i];
|
|
|
- if (column.Position == position)
|
|
|
- {
|
|
|
- //String sColName = String.Format("ActionColumn{0}{1}", i, position == DynamicActionColumnPosition.Start ? "L" : "R");
|
|
|
- var sColName = string.Format("ActionColumn{0}", i);
|
|
|
- gridRowResizingOptions.ExcludeColumns.Add(sColName);
|
|
|
-
|
|
|
- var summary = ConvertSummary(column.Summary());
|
|
|
- if (summary != null)
|
|
|
- {
|
|
|
- summary.Name = sColName;
|
|
|
- summary.MappingName = sColName;
|
|
|
- Summaries.Add(summary);
|
|
|
- }
|
|
|
-
|
|
|
- if (column is DynamicImageColumn imgcol)
|
|
|
- {
|
|
|
- var newcol = new GridImageColumn();
|
|
|
- newcol.MappingName = sColName;
|
|
|
- //newcol.Stretch = Stretch.Uniform;
|
|
|
- newcol.Width = column.Width == 0 ? DataGrid.RowHeight : column.Width;
|
|
|
- newcol.Padding = new Thickness(4);
|
|
|
- newcol.ImageHeight = DataGrid.RowHeight - 8;
|
|
|
- newcol.ImageWidth = DataGrid.RowHeight - 8;
|
|
|
- newcol.ColumnSizer = GridLengthUnitType.None;
|
|
|
- newcol.HeaderText = column.HeaderText;
|
|
|
- newcol.AllowEditing = false;
|
|
|
-
|
|
|
- ApplyFilterStyle(newcol, true, true);
|
|
|
-
|
|
|
- newcol.ShowToolTip = column.ToolTip != null;
|
|
|
- newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
-
|
|
|
- var style = new Style();
|
|
|
- style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
- style.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
- newcol.FilterRowCellStyle = style;
|
|
|
-
|
|
|
- newcol.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
-
|
|
|
- DataGrid.Columns.Add(newcol);
|
|
|
- ColumnList.Add(column);
|
|
|
- }
|
|
|
- else if (column is DynamicTextColumn txtCol)
|
|
|
- {
|
|
|
-
|
|
|
- var newcol = new GridTextColumn();
|
|
|
- gridRowResizingOptions.ExcludeColumns.Add(sColName);
|
|
|
- newcol.TextWrapping = TextWrapping.NoWrap;
|
|
|
-
|
|
|
- newcol.TextAlignment = txtCol.Alignment.TextAlignment(typeof(string));
|
|
|
-
|
|
|
- newcol.AllowEditing = false;
|
|
|
- newcol.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
|
|
|
- newcol.MappingName = sColName;
|
|
|
- newcol.Width = column.Width;
|
|
|
- newcol.ColumnSizer = GridLengthUnitType.None;
|
|
|
- newcol.HeaderText = column.HeaderText;
|
|
|
- newcol.AllowFiltering = (column.Filters != null && column.Filters.Length != 0) || column.FilterRecord is not null;
|
|
|
- newcol.AllowSorting = false;
|
|
|
- newcol.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
- newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
-
|
|
|
- newcol.ShowToolTip = column.ToolTip != null;
|
|
|
- newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
-
|
|
|
- var style = new Style();
|
|
|
- style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
- style.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
- newcol.FilterRowCellStyle = style;
|
|
|
-
|
|
|
- newcol.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
-
|
|
|
- var cellstyle = new Style();
|
|
|
- AddCellStyleConverters(cellstyle, column, sColName);
|
|
|
- newcol.CellStyle = cellstyle;
|
|
|
-
|
|
|
- DataGrid.Columns.Add(newcol);
|
|
|
- ColumnList.Add(column);
|
|
|
- }
|
|
|
- else if (column is DynamicTemplateColumn tmplCol)
|
|
|
- {
|
|
|
- var newcol = new GridTemplateColumn();
|
|
|
- newcol.CellTemplate = TemplateGenerator.CreateDataTemplate(() =>
|
|
|
- {
|
|
|
- var content = new ContentControl();
|
|
|
- content.SetBinding(ContentControl.ContentProperty,
|
|
|
- WPFUtils.CreateMultiBinding(new MultiFuncConverter(x =>
|
|
|
- {
|
|
|
- if(x[0] is DataRowView view && DataGridItems is DataTable table)
|
|
|
- {
|
|
|
- var rowIdx = table.Rows.IndexOf(view.Row);
|
|
|
- if (rowIdx >= 0)
|
|
|
- {
|
|
|
- return tmplCol.Template(Parent.Data.Rows[rowIdx]);
|
|
|
- }
|
|
|
- }
|
|
|
- return null;
|
|
|
- }))
|
|
|
- .AddBinding(new Binding("."))
|
|
|
- .AddBinding(new Binding(sColName)));
|
|
|
- return content;
|
|
|
- });
|
|
|
-
|
|
|
- newcol.AllowEditing = false;
|
|
|
- newcol.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
|
|
|
- newcol.MappingName = sColName;
|
|
|
-
|
|
|
- newcol.Width = tmplCol.Width;
|
|
|
- newcol.ColumnSizer = GridLengthUnitType.None;
|
|
|
- newcol.HeaderText = column.HeaderText;
|
|
|
- newcol.AllowFiltering = false;
|
|
|
- newcol.AllowSorting = false;
|
|
|
- newcol.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
-
|
|
|
- newcol.ShowToolTip = column.ToolTip != null;
|
|
|
- newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
-
|
|
|
- var style = new Style();
|
|
|
- style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
- style.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
- newcol.FilterRowCellStyle = style;
|
|
|
-
|
|
|
- newcol.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
-
|
|
|
- var cellstyle = new Style();
|
|
|
- AddCellStyleConverters(cellstyle, column, sColName);
|
|
|
- newcol.CellStyle = cellstyle;
|
|
|
-
|
|
|
- DataGrid.Columns.Add(newcol);
|
|
|
- ColumnList.Add(column);
|
|
|
- }
|
|
|
- }
|
|
|
+ filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, DynamicGridUtils.FilterBackground));
|
|
|
+ column.ImmediateUpdateColumnFilter = true;
|
|
|
+ column.ColumnFilter = ColumnFilter.Value;
|
|
|
+ column.FilterRowCondition = FilterRowCondition.Contains;
|
|
|
+ column.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
+ column.AllowBlankFilters = true;
|
|
|
+ column.AllowSorting = !isactioncolumn && Parent.CanSort();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
+ filterstyle.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
+ column.ColumnFilter = ColumnFilter.Value;
|
|
|
+ column.AllowFiltering = false;
|
|
|
+ column.AllowSorting = false;
|
|
|
+ column.FilterRowEditorType = "TextBox";
|
|
|
+ column.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
}
|
|
|
+
|
|
|
+ column.FilterRowCellStyle = filterstyle;
|
|
|
}
|
|
|
|
|
|
#region Summaries
|
|
@@ -1218,99 +1105,201 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- private void ApplyFilterStyle(GridColumn column, bool filtering, bool isactioncolumn)
|
|
|
+ private void LoadActionColumn(DynamicActionColumn column)
|
|
|
{
|
|
|
- var filterstyle = new Style();
|
|
|
- if (filtering)
|
|
|
+ var i = ActionColumns.Count;
|
|
|
+ var sColName = string.Format("ActionColumn{0}", i);
|
|
|
+ ActionColumns.Add(column);
|
|
|
+ gridRowResizingOptions.ExcludeColumns.Add(sColName);
|
|
|
+
|
|
|
+ var summary = ConvertSummary(column.Summary());
|
|
|
+ if (summary != null)
|
|
|
{
|
|
|
- filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, DynamicGridUtils.FilterBackground));
|
|
|
- column.ImmediateUpdateColumnFilter = true;
|
|
|
- column.ColumnFilter = ColumnFilter.Value;
|
|
|
- column.FilterRowCondition = FilterRowCondition.Contains;
|
|
|
- column.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
- column.AllowBlankFilters = true;
|
|
|
- column.AllowSorting = !isactioncolumn && Parent.CanSort();
|
|
|
+ summary.Name = sColName;
|
|
|
+ summary.MappingName = sColName;
|
|
|
+ Summaries.Add(summary);
|
|
|
}
|
|
|
- else
|
|
|
+
|
|
|
+ if (column is DynamicImageColumn imgcol)
|
|
|
{
|
|
|
- filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
- filterstyle.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
- column.ColumnFilter = ColumnFilter.Value;
|
|
|
- column.AllowFiltering = false;
|
|
|
- column.AllowSorting = false;
|
|
|
- column.FilterRowEditorType = "TextBox";
|
|
|
- column.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
+ var newcol = new GridImageColumn();
|
|
|
+ newcol.MappingName = sColName;
|
|
|
+ newcol.Width = column.Width == 0 ? DataGrid.RowHeight : column.Width;
|
|
|
+ newcol.Padding = new Thickness(4);
|
|
|
+ newcol.ImageHeight = DataGrid.RowHeight - 8;
|
|
|
+ newcol.ImageWidth = DataGrid.RowHeight - 8;
|
|
|
+ newcol.ColumnSizer = GridLengthUnitType.None;
|
|
|
+ newcol.HeaderText = column.HeaderText;
|
|
|
+ newcol.AllowEditing = false;
|
|
|
+
|
|
|
+ ApplyFilterStyle(newcol, true, true);
|
|
|
+
|
|
|
+ newcol.ShowToolTip = column.ToolTip != null;
|
|
|
+ newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
+
|
|
|
+ var style = new Style();
|
|
|
+ style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
+ style.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
+ newcol.FilterRowCellStyle = style;
|
|
|
+
|
|
|
+ newcol.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
+
|
|
|
+ DataGrid.Columns.Add(newcol);
|
|
|
+ ColumnList.Add(column);
|
|
|
}
|
|
|
+ else if (column is DynamicTextColumn txtCol)
|
|
|
+ {
|
|
|
|
|
|
- column.FilterRowCellStyle = filterstyle;
|
|
|
+ var newcol = new GridTextColumn();
|
|
|
+ gridRowResizingOptions.ExcludeColumns.Add(sColName);
|
|
|
+ newcol.TextWrapping = TextWrapping.NoWrap;
|
|
|
+
|
|
|
+ newcol.TextAlignment = txtCol.Alignment.TextAlignment(typeof(string));
|
|
|
+
|
|
|
+ newcol.AllowEditing = false;
|
|
|
+ newcol.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
|
|
|
+ newcol.MappingName = sColName;
|
|
|
+ newcol.Width = column.Width;
|
|
|
+ newcol.ColumnSizer = GridLengthUnitType.None;
|
|
|
+ newcol.HeaderText = column.HeaderText;
|
|
|
+ newcol.AllowFiltering = (column.Filters != null && column.Filters.Length != 0) || column.FilterRecord is not null;
|
|
|
+ newcol.AllowSorting = false;
|
|
|
+ newcol.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
+ newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
+
|
|
|
+ newcol.ShowToolTip = column.ToolTip != null;
|
|
|
+ newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
+
|
|
|
+ var style = new Style();
|
|
|
+ style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
+ style.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
+ newcol.FilterRowCellStyle = style;
|
|
|
+
|
|
|
+ newcol.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
+
|
|
|
+ var cellstyle = new Style();
|
|
|
+ AddCellStyleConverters(cellstyle, column, sColName);
|
|
|
+ newcol.CellStyle = cellstyle;
|
|
|
+
|
|
|
+ DataGrid.Columns.Add(newcol);
|
|
|
+ ColumnList.Add(column);
|
|
|
+ }
|
|
|
+ else if (column is DynamicTemplateColumn tmplCol)
|
|
|
+ {
|
|
|
+ var newcol = new GridTemplateColumn();
|
|
|
+ newcol.CellTemplate = TemplateGenerator.CreateDataTemplate(() =>
|
|
|
+ {
|
|
|
+ var content = new ContentControl();
|
|
|
+ content.SetBinding(ContentControl.ContentProperty,
|
|
|
+ WPFUtils.CreateMultiBinding(new MultiFuncConverter(x =>
|
|
|
+ {
|
|
|
+ if(x[0] is DataRowView view && DataGridItems is DataTable table)
|
|
|
+ {
|
|
|
+ var rowIdx = table.Rows.IndexOf(view.Row);
|
|
|
+ if (rowIdx >= 0)
|
|
|
+ {
|
|
|
+ return tmplCol.Template(Parent.Data.Rows[rowIdx]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }))
|
|
|
+ .AddBinding(new Binding("."))
|
|
|
+ .AddBinding(new Binding(sColName)));
|
|
|
+ return content;
|
|
|
+ });
|
|
|
+
|
|
|
+ newcol.AllowEditing = false;
|
|
|
+ newcol.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
|
|
|
+ newcol.MappingName = sColName;
|
|
|
+
|
|
|
+ newcol.Width = tmplCol.Width;
|
|
|
+ newcol.ColumnSizer = GridLengthUnitType.None;
|
|
|
+ newcol.HeaderText = column.HeaderText;
|
|
|
+ newcol.AllowFiltering = false;
|
|
|
+ newcol.AllowSorting = false;
|
|
|
+ newcol.FilterRowOptionsVisibility = Visibility.Collapsed;
|
|
|
+
|
|
|
+ newcol.ShowToolTip = column.ToolTip != null;
|
|
|
+ newcol.ShowHeaderToolTip = column.ToolTip != null;
|
|
|
+
|
|
|
+ var style = new Style();
|
|
|
+ style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
|
|
|
+ style.Setters.Add(new Setter(Control.IsEnabledProperty, false));
|
|
|
+ newcol.FilterRowCellStyle = style;
|
|
|
+
|
|
|
+ newcol.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
+
|
|
|
+ var cellstyle = new Style();
|
|
|
+ AddCellStyleConverters(cellstyle, column, sColName);
|
|
|
+ newcol.CellStyle = cellstyle;
|
|
|
+
|
|
|
+ DataGrid.Columns.Add(newcol);
|
|
|
+ ColumnList.Add(column);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- private void LoadDataColumns(DynamicGridColumns columns)
|
|
|
+ private void LoadDataColumn(DynamicGridColumn column)
|
|
|
{
|
|
|
- foreach (var column in columns)
|
|
|
+ if (this.CreateEditorColumn(column, out var newcol, out var prop))
|
|
|
{
|
|
|
- if (this.CreateEditorColumn(column, out var newcol, out var prop))
|
|
|
- {
|
|
|
- newcol.GetEntity = () => _editingObject?.Object;
|
|
|
- newcol.EntityChanged += DoEntityChanged;
|
|
|
- if (!newcol.VariableHeight)
|
|
|
- gridRowResizingOptions.ExcludeColumns.Add(newcol.MappingName);
|
|
|
+ newcol.GetEntity = () => _editingObject?.Object;
|
|
|
+ newcol.EntityChanged += DoEntityChanged;
|
|
|
+ if (!newcol.VariableHeight)
|
|
|
+ gridRowResizingOptions.ExcludeColumns.Add(newcol.MappingName);
|
|
|
|
|
|
- var newColumn = newcol.CreateGridColumn();
|
|
|
+ var newColumn = newcol.CreateGridColumn();
|
|
|
|
|
|
- var summary = ConvertSummary(newcol.Summary());
|
|
|
- if (summary != null)
|
|
|
- {
|
|
|
- summary.Name = newcol.MappingName;
|
|
|
- summary.MappingName = newcol.MappingName;
|
|
|
- Summaries.Add(summary);
|
|
|
- }
|
|
|
-
|
|
|
- ApplyFilterStyle(newColumn, newcol.Filtered, false);
|
|
|
-
|
|
|
- newColumn.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
+ var summary = ConvertSummary(newcol.Summary());
|
|
|
+ if (summary != null)
|
|
|
+ {
|
|
|
+ summary.Name = newcol.MappingName;
|
|
|
+ summary.MappingName = newcol.MappingName;
|
|
|
+ Summaries.Add(summary);
|
|
|
+ }
|
|
|
+
|
|
|
+ ApplyFilterStyle(newColumn, newcol.Filtered, false);
|
|
|
+
|
|
|
+ newColumn.HeaderStyle = GetHeaderCellStyle(column);
|
|
|
|
|
|
- var cellstyle = new Style();
|
|
|
- if (Parent.IsDirectEditMode())
|
|
|
+ var cellstyle = new Style();
|
|
|
+ if (Parent.IsDirectEditMode())
|
|
|
+ {
|
|
|
+ var editor = Parent.CustomiseEditor(column, column.Editor);
|
|
|
+ if (editor is null || !editor.Editable.IsDirectEditable())
|
|
|
{
|
|
|
- var editor = Parent.CustomiseEditor(column, column.Editor);
|
|
|
- if (editor is null || !editor.Editable.IsDirectEditable())
|
|
|
- {
|
|
|
- cellstyle.Setters.Add(new Setter(Control.BackgroundProperty,
|
|
|
- new Binding()
|
|
|
- {
|
|
|
- Path = new PropertyPath("."), Converter = CellBackgroundConverter,
|
|
|
- ConverterParameter = new DynamicGridCellStyleParameters(column,new SolidColorBrush(Colors.WhiteSmoke))
|
|
|
- }));
|
|
|
- newColumn.AllowEditing = false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- cellstyle.Setters.Add(new Setter(Control.BackgroundProperty,
|
|
|
- new Binding()
|
|
|
- {
|
|
|
- Path = new PropertyPath("."), Converter = CellBackgroundConverter,
|
|
|
- ConverterParameter = new DynamicGridCellStyleParameters(column,new SolidColorBrush(Colors.LightYellow))
|
|
|
- }));
|
|
|
- newColumn.AllowEditing = true;
|
|
|
- }
|
|
|
-
|
|
|
- cellstyle.Setters.Add(new Setter(Control.ForegroundProperty, new SolidColorBrush(Colors.Black)));
|
|
|
- newColumn.CellStyle = cellstyle;
|
|
|
+ cellstyle.Setters.Add(new Setter(Control.BackgroundProperty,
|
|
|
+ new Binding()
|
|
|
+ {
|
|
|
+ Path = new PropertyPath("."), Converter = CellBackgroundConverter,
|
|
|
+ ConverterParameter = new DynamicGridCellStyleParameters(column,new SolidColorBrush(Colors.WhiteSmoke))
|
|
|
+ }));
|
|
|
+ newColumn.AllowEditing = false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- AddCellStyleConverters(cellstyle, column, newColumn.MappingName);
|
|
|
- newColumn.CellStyle = cellstyle;
|
|
|
+ cellstyle.Setters.Add(new Setter(Control.BackgroundProperty,
|
|
|
+ new Binding()
|
|
|
+ {
|
|
|
+ Path = new PropertyPath("."), Converter = CellBackgroundConverter,
|
|
|
+ ConverterParameter = new DynamicGridCellStyleParameters(column,new SolidColorBrush(Colors.LightYellow))
|
|
|
+ }));
|
|
|
+ newColumn.AllowEditing = true;
|
|
|
}
|
|
|
-
|
|
|
- DataGrid.Columns.Add(newColumn);
|
|
|
- ColumnList.Add(column);
|
|
|
- foreach (var extra in newcol.ExtraColumns)
|
|
|
- Parent.AddHiddenColumn(extra);
|
|
|
+
|
|
|
+ cellstyle.Setters.Add(new Setter(Control.ForegroundProperty, new SolidColorBrush(Colors.Black)));
|
|
|
+ newColumn.CellStyle = cellstyle;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ AddCellStyleConverters(cellstyle, column, newColumn.MappingName);
|
|
|
+ newColumn.CellStyle = cellstyle;
|
|
|
+ }
|
|
|
+
|
|
|
+ DataGrid.Columns.Add(newColumn);
|
|
|
+ ColumnList.Add(column);
|
|
|
+ foreach (var extra in newcol.ExtraColumns)
|
|
|
+ Parent.AddHiddenColumn(extra);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private void LoadSummaries()
|
|
@@ -1329,23 +1318,31 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void RefreshColumns(DynamicGridColumns columns, DynamicActionColumns actionColumns, DynamicGridColumnGroupings groupings)
|
|
|
+ public void RefreshColumns(IEnumerable<DynamicColumnBase> columns, DynamicGridColumnGroupings groupings)
|
|
|
{
|
|
|
DataGrid.ItemsSource = null;
|
|
|
DataGrid.Columns.Suspend();
|
|
|
|
|
|
ColumnList.Clear();
|
|
|
+ ActionColumns.Clear();
|
|
|
DataGrid.Columns.Clear();
|
|
|
DataGrid.TableSummaryRows.Clear();
|
|
|
|
|
|
gridRowResizingOptions.ExcludeColumns = new List<string>();
|
|
|
+ Summaries.Clear();
|
|
|
|
|
|
- ActionColumns = actionColumns.ToList();
|
|
|
+ foreach(var column in columns)
|
|
|
+ {
|
|
|
+ if(column is DynamicActionColumn ac)
|
|
|
+ {
|
|
|
+ LoadActionColumn(ac);
|
|
|
+ }
|
|
|
+ else if(column is DynamicGridColumn gc)
|
|
|
+ {
|
|
|
+ LoadDataColumn(gc);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- Summaries.Clear();
|
|
|
- LoadActionColumns(DynamicActionColumnPosition.Start);
|
|
|
- LoadDataColumns(columns);
|
|
|
- LoadActionColumns(DynamicActionColumnPosition.End);
|
|
|
LoadSummaries();
|
|
|
LoadStackedHeaders(groupings);
|
|
|
|