Чтобы не дать кому-то получить описание при щелчке строки, добавьте этот атрибут в сетку:
<DataGrid Name="dgPrimary" RowDetailsVisibilityMode="Collapsed">
Затем добавляется два поведения типа ChangePropertyAction, использование выражения blend является одним из самых простых.
- Мышь вводит действие
- Мышь оставь в покое
Вот исходная сетка данных перед тем, как мышь наведется на заголовки

Вот когда я переместил указатель мыши на сетку данных моего тестового проекта dgPrimary. Посмотрите, как открылось описание всех строк.
Вот код, прикрепленный от blend к сетке данных
<DataGrid x:Name="dgPrimary" RowDetailsVisibilityMode="Collapsed">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Margin="20,0,0,0" Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="{Binding New}" />
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Original}"
Header="File Name Before"
IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding New}"
Header="File Name After"
IsReadOnly="True" />
</DataGrid.Columns>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<ei:ChangePropertyAction PropertyName="RowDetailsVisibilityMode">
<ei:ChangePropertyAction.Value>
<DataGridRowDetailsVisibilityMode>Visible</DataGridRowDetailsVisibilityMode>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeave">
<ei:ChangePropertyAction x:Name="cpaLeave" PropertyName="RowDetailsVisibilityMode"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
И код для загрузки сетки данных
dgPrimary.ItemsSource = Directory.GetFiles( @"C:\" )
.Select( ( nm, index ) => new
{
Original = System.IO.Path.GetFileName( nm ),
New = string.Format( "{0}_{1}{2}", System.IO.Path.GetFileNameWithoutExtension( nm ), index, System.IO.Path.GetExtension( nm ) )
} );