Обработка события DataGrid RowSelected. Об этом событии Скрыть предыдущий ряд. Теперь для того, чтобы получить доступ к предыдущей строке, проще всего будет сохранить ссылку в событии двойного щелчка. Примерно так:
DataGridRow visibleDetailRow = null;
private void Row_DoubleClick(object sender, RoutedEventArgs e)
{
visibleDetailRow = (DataGridRow)sender;
visibleDetailRow.DetailsVisibility = visibleDetailRow.DetailsVisibility == Visibility.Collapsed ?
Visibility.Visible : Visibility.Collapsed;
}
private void DataGridRow_Selected(object sender, RoutedEventArgs e)
{
if(visibleDetailRow != null)
visibleDetailRow.DetailsVisibility = Visibility.Collapsed;
}
Я не уверен, используете ли вы MVVM в своем коде, возможно, это можно было бы обработать более элегантным способом, связав видимость ваших данных с помощью MVVM, однако решение простораспространяется на ваш код.