private void gridData_RowEditEnding(object sender, Microsoft.Windows.Controls.DataGridRowEditEndingEventArgs e) { if ((bool)chkCascade.IsChecked && e.EditAction == DataGridEditAction.Commit) { try { Binding binding = gridData.CurrentColumn.ClipboardContentBinding as Binding; // col.Binding as Binding; string boundPropertyName = binding.Path.Path; object value = ((DataRowView)e.Row.Item)[boundPropertyName]; int index = e.Row.GetIndex() + 1;// gridData.SelectedIndex; for (; index < gridData.Items.Count; index++) { object row = gridData.Items[index]; PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(row); PropertyDescriptor property = properties[boundPropertyName]; object destenation = property.GetValue(row); property.SetValue(row, value); } } catch (Exception) { } } }
private void dataGrid1_RowEditEnding(object sender, Microsoft.Windows.Controls.DataGridRowEditEndingEventArgs e) { if (e.EditAction == DataGridEditAction.Cancel) { // Cancelling the entire row will reset the state IsEditingRow = false; } else if (e.EditAction == DataGridEditAction.Commit) { e.Cancel = IsEditingRow; } }