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" );

}