protected virtual void InitializeColumns() { if (this.ColumnCount != this.ItemsSource.BoundProperties.Count) { this.ColumnCount = this.ItemsSource.BoundProperties.Count; for (int i = 0; i < this.Columns.Count; i++) { PropertyDescriptor prop = this.ItemsSource.BoundProperties[i]; GridViewDataColumn newColumn = GridViewHelper.AutoGenerateGridColumn(prop.PropertyType, null); newColumn.HeaderText = prop.DisplayName; newColumn.Name = prop.Name; this.Columns.RemoveAt(i); this.Columns.Insert(i, newColumn); } } }