Это классическая мышь ввода / вывода, которая распространена во многих областях Silverlight, а также во многих других средах.Предполагается, что события входа и выхода мыши будут приходить парами, но они этого не делают, когда что-то перехватывает события мыши.
Вот что здесь происходит, DataGridRow упрощенно отслеживает мышь с помощью стандартногособытия мыши.Однако, когда вы показываете дочернее окно, когда оно находится в состоянии наведения мыши, дальнейшие события мыши не переходят в строку.Когда вы закрываете дочернее окно, мышь уже находится за пределами строки, поэтому она по-прежнему не получает событий.
Возможный обходной путь - самостоятельно поиграть с визуальным состоянием строки перед отображением дочернего окна: -
VisualStateManager.GotoState(someRow, "NormalSelected", false);
Не идеально, но возможно достаточно хорошо.