private void AddRemoveGroups(int numberOfGroups) { if (_columns.Count > numberOfGroups) { for (int i = _columns.Count - 1; i >= numberOfGroups; i--) { _dataGrid.ColumnDefinitions.RemoveAt(_dataGrid.ColumnDefinitions.Count - 1); _dataGrid.Children.Remove(_columns[i]); _columns.RemoveAt(i); } } else if (_columns.Count < numberOfGroups) { for (int i = _columns.Count; i < numberOfGroups; i++) { var ele = new MasterCurveCreationDataColumnControl(); ele.SetValue(Grid.ColumnProperty, i + 1); ele.SetValue(Grid.RowProperty, 0); _columns.Add(ele); _dataGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); _dataGrid.Children.Add(ele); } } }