Problema de largura do DataGrid RowDetails

Suponha que eu tenha um DataGrid definido assim

<DataGrid AreRowDetailsFrozen="True"
          ItemsSource="{Binding MyCollection}"
          AutoGenerateColumns="False">
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <Border CornerRadius="5" BorderBrush="Red"
                    BorderThickness="2" Background="Black">
                <TextBlock Foreground="White" Text="{Binding RowDetails}"
                           TextWrapping="Wrap"/>
            </Border>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
    <DataGrid.Columns>
        <DataGridTextColumn Header="0" Binding="{Binding Value1}"/>
        <DataGridTextColumn Header="1" Binding="{Binding Value2}"/>
        <DataGridTextColumn Header="2" Binding="{Binding Value3}"/>
        <DataGridTextColumn Header="3" Binding="{Binding Value4}"/>
    </DataGrid.Columns>
</DataGrid>

E fica assim com e sem RowDetails

Na foto à direita, recebo um DataGridRow muito longo que nunca envolve.
É possível obter os RowDetails para usar a mesma largura que o DataGrid e não afetar a própria largura?

Coisas que tentei que alcançam a embalagem, mas não de uma maneira satisfatória

Defina Largura ou MaxWidth na borda ou no TextBlock. Não é muito dinâmico.Defina ScrollViewer.HorizontalScrollBarVisibility = "Desativado" no DataGrid. Não é muito bom quando as colunas não se encaixam.

questionAnswers(6)

yourAnswerToTheQuestion