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);
        }