private static void RemoveColumn(DataGrid grid, TableColumnViewModel column) { var dColumn = grid.Columns.FirstOrDefault(c => c.Header.ToString() == column.Header); if (dColumn != null) { grid.Columns.Remove(dColumn); } }
private static void AddColumn(DataGrid grid, TableColumnViewModel column) { DataGridTextColumn tColumn = new DataGridTextColumn(); tColumn.Header = column.Header; tColumn.MinWidth = 80; System.Windows.Data.Binding visibilityBinding = new System.Windows.Data.Binding("IsVisible"); visibilityBinding.Converter = new BooleanToVisibilityConverter(); visibilityBinding.Source = column; visibilityBinding.Mode = BindingMode.TwoWay; BindingOperations.SetBinding(tColumn, DataGridColumn.VisibilityProperty, visibilityBinding); tColumn.Binding = new System.Windows.Data.Binding($"ColumnsData[{column.Header}].Value"); grid.Columns.Add(tColumn); }