Xceed DataGrid for WPF v7.3 Documentation
Welcome to Xceed DataGrid, Editors, and 3D Views for WPF v7.3 / Xceed DataGrid for WPF / Code Snippets / Subscribing to the Events of an Element

In This Topic
    Subscribing to the Events of an Element
    In This Topic

    The following example demonstrates how to subscribe the MouseEnter and MouseLeave events of each DataRow using EventTriggers in an implicit style. The MouseEnter and MouseLeave event handlers are provided below.

    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}"/>
        <Style TargetType="{x:Type xcdg:DataRow}">
          <EventSetter Event="MouseEnter"
                       Handler="DataRowMouseEnter"/>
          <EventSetter Event="MouseLeave"
                       Handler="DataRowMouseLeave"/>
        </Style>
      </Grid.Resources>
        
      <xcdg:DataGridControl x:Name="OrdersGrid"
                            ItemsSource="{Binding Source={StaticResource cvs_orders}}"
                            View="TableView.LunaNormalColorTheme"/>
    </Grid>

    The following code provides the implementation of the MouseEnter and MouseLeave event handlers, which change the background color of a DataRow when the mouse enters and resets it when the mouse leaves.

    VB.NET
    Copy Code
    Private Sub DataRowMouseEnter(ByVal sender As Object, ByVal e As MouseEventArgs)
      Dim row As Xceed.Wpf.DataGrid.DataRow = TryCast(sender, Xceed.Wpf.DataGrid.DataRow)
      If Not row Is Nothing Then
        row.Background = Brushes.Pink
      End If
    End Sub
    Private Sub DataRowMouseLeave(ByVal sender As Object, ByVal e As MouseEventArgs)
      Dim row As Xceed.Wpf.DataGrid.DataRow = TryCast(sender, Xceed.Wpf.DataGrid.DataRow)
      If Not row Is Nothing Then
        row.Background = DataGridControl.GetParentDataGridControl( row ).Background
      End If
    End Sub
    C#
    Copy Code
    private void DataRowMouseEnter( object sender, MouseEventArgs e )
    {
      Xceed.Wpf.DataGrid.DataRow row = sender as Xceed.Wpf.DataGrid.DataRow;
      if( row != null )
      {
        row.Background = Brushes.Pink;
      }
    }
    private void DataRowMouseLeave( object sender, MouseEventArgs e )
    {
      Xceed.Wpf.DataGrid.DataRow row = sender as Xceed.Wpf.DataGrid.DataRow;
      if( row != null )
      {
        row.Background = DataGridControl.GetParentDataGridControl( row ).Background;
      }
    }