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)
                {
                }
            }
        }
Exemple #2
0
 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;
     }
 }