The following example demonstrates how to subscribe to the Cell.EditBeginning and EditBegun routed events as well as how to handle and cancel them.

XAML
Copy Code
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
   <Grid.Resources>
      <xcdg:DataGridCollectionViewSource x:Key="cvs_orders"
                                      Source="{Binding Source={x:Static Application.Current}, Path=Orders}" />
        </Grid.Resources>
   <DockPanel>
      <StackPanel DockPanel.Dock="Top">
         <CheckBox x:Name="handledByRowCheckBox"
                   Content="Events are handled by the rows"
                   IsChecked="False" />
         <CheckBox x:Name="cancelBeginEdit"
                   Content="Cancel BeginEdit event"
                   IsChecked="False" />
      </StackPanel>
      <xcdg:DataGridControl x:Name="OrdersGrid"
                            ItemsSource="{Binding Source={StaticResource cvs_orders}}"
                            xcdg:Cell.EditBeginning="EditBeginning"
                            xcdg:Cell.EditBegun="EditBegun"/>
   </DockPanel>
</Grid>

The following code provides the implementation of the EditBeginning and EditBegun event handlers.

VB.NET
Copy Code
Public Sub EditBeginning( ByVal sender As Object, ByVal e As CancelRoutedEventArgs )
   If Me.cancelBeginEdit.IsChecked = True Then
      e.Cancel = True
   End If
   If Me.handledByRowCheckBox.IsChecked = True Then
     e.Handled = True
   End If
   Debug.WriteLine( sender + ": EditBeginning" )
End Sub
Public Sub EditBegun( ByVal sender As Object, ByVal e As RoutedEventArgs )
   If Me.handledByRowCheckBox.IsChecked = True Then
     e.Handled = True
   End If
   Debug.WriteLine( sender + ": EditBegun" )
End Sub
C#
Copy Code
public void EditBeginning( object sender, CancelRoutedEventArgs e )
{
  e.Cancel = ( this.cancelBeginEdit.IsChecked == true );
  e.Handled = ( this.handledByRowCheckBox.IsChecked == true );
  Debug.WriteLine( sender + ": EditBeginning" );
}
public void EditBegun( object sender, RoutedEventArgs e )
{
  e.Handled = ( this.handledByRowCheckBox.IsChecked ?? true );
  Debug.WriteLine( sender + ": EditBegun" );
}