private void EditColumn() { DataGridColumnModel columnModel = datagridColumnsListBox.SelectedItem as DataGridColumnModel; if (columnModel == null) { return; } using (ModelEditingScope scope = columnModel.Column.BeginEdit(columnModel.Column.Name + " Changed")) { EditDataGridColumnsUserInterface ui = new EditDataGridColumnsUserInterface(_context, columnModel, _dataSourceProperties); // Use Windows Forms to show the design time because Windows Forms knows about the VS message pump System.Windows.Forms.DialogResult result = DesignerDialog.ShowDesignerDialog("Edit Column", ui, 360, 470); if (result == System.Windows.Forms.DialogResult.OK) { scope.Complete(); _dataSourcePropertiesCVS.View.Refresh(); } else { scope.Revert(); } } }
internal EditDataGridColumnsUserInterface(EditingContext context, DataGridColumnModel dataGridColumnModel, DataSourcePropertyModelCollection dataSourceProperties) : this() { _dataSourceProperties = dataSourceProperties; _dataGridColumnModel = dataGridColumnModel; _context = context; this.DataContext = dataGridColumnModel; bindingComboBox.ItemsSource = _dataSourceProperties; clipboardContentBindingComboBox.ItemsSource = _dataSourceProperties; }
/// <summary> /// Remove the selected DataGridColumn /// </summary> private void RemoveButton_Click(object sender, RoutedEventArgs e) { if (datagridColumnsListBox.SelectedItems.Count > 0) { int oldSelectedIndex = datagridColumnsListBox.SelectedIndex; DataGridColumnModel[] itemsToRemove = new DataGridColumnModel[datagridColumnsListBox.SelectedItems.Count]; datagridColumnsListBox.SelectedItems.CopyTo(itemsToRemove, 0); foreach (DataGridColumnModel dataGridColumnModel in itemsToRemove) { _columns.Remove(dataGridColumnModel); } datagridColumnsListBox.SelectedIndex = Math.Min(oldSelectedIndex, datagridColumnsListBox.Items.Count - 1); _dataSourcePropertiesCVS.View.Refresh(); } }