/// <summary> /// Create DataGridColumns for all the datasoure properties that don't already have columns /// </summary> private void CreateAllButton_Click(object sender, RoutedEventArgs e) { bool hasColumnsAlready = _columns.Count != 0; DataGridColumnTypeModel columnTypeModel = columnTypeComboBox.SelectedItem as DataGridColumnTypeModel; if (columnTypeModel == null) { throw new Exception("unexpected state"); } // Set databinding related properties DataGridHelper.SparseSetValue(_dataGrid.Properties[DataGrid.AutoGenerateColumnsProperty], false); foreach (DataSourcePropertyModel pm in _dataSourceProperties) { bool addThisColumn = true; if (!hasColumnsAlready) { addThisColumn = true; } else { addThisColumn = !(_columns.Includes(dataGridColumnModel => pm.Name.Equals(dataGridColumnModel.BindingPropertyName))); } if (addThisColumn) { ModelItem dataGridColumn = columnTypeModel.CreateDataGridColumn(_context, pm.Property); _columns.Add(dataGridColumn); } } _dataSourcePropertiesCVS.View.Refresh(); }
/// <summary> /// Create a DataGridColumn for the selected data source property /// </summary> private void AddButton_Click(object sender, RoutedEventArgs e) { DataGridColumnTypeModel columnTypeModel = columnTypeComboBox.SelectedItem as DataGridColumnTypeModel; if (columnTypeModel == null) { throw new Exception("unexpected state"); } if (dataSourceColumnsListBox.SelectedItems.Count > 0) { int oldSelectedIndex = dataSourceColumnsListBox.SelectedIndex; DataSourcePropertyModel[] itemsToAdd = new DataSourcePropertyModel[dataSourceColumnsListBox.SelectedItems.Count]; dataSourceColumnsListBox.SelectedItems.CopyTo(itemsToAdd, 0); foreach (DataSourcePropertyModel pm in itemsToAdd) { ModelItem dataGridColumn = columnTypeModel.CreateDataGridColumn(_context, pm.Property); _columns.Add(dataGridColumn); } DataGridHelper.SparseSetValue(_dataGrid.Properties[DataGrid.AutoGenerateColumnsProperty], false); _dataSourcePropertiesCVS.View.Refresh(); dataSourceColumnsListBox.SelectedIndex = Math.Min(oldSelectedIndex, dataSourceColumnsListBox.Items.Count - 1); } }
private void CreateUnboundButton_Click(object sender, RoutedEventArgs e) { DataGridColumnTypeModel columnTypeModel = columnTypeComboBox.SelectedItem as DataGridColumnTypeModel; if (columnTypeModel == null) { throw new Exception("unexpected state"); } // Set databinding related properties DataGridHelper.SparseSetValue(_dataGrid.Properties[DataGrid.AutoGenerateColumnsProperty], false); ModelItem dataGridColumn = columnTypeModel.CreateDataGridColumn(_context); _columns.Add(dataGridColumn); }