¿Cómo cambiar el texto de TextBlock que está en DataTemplate of Row Details para cada DataGrid Row Details?

Tengo Datagrid que hace clic con el mouse en cada fila y muestra detalles de la fila de la cuadrícula de datos. aquí está el código,

Microsoft.Windows.Controls.DataGridRow row = (Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromItem(DataGrid1.SelectedItem));


        DataGridDetailsPresenter presenter = FindVisualChild<DataGridDetailsPresenter>(row);


        DataTemplate template = presenter.ContentTemplate;
        TextBlock txt = (TextBlock)template.FindName("rowdetails", presenter);
        txt.Text = retString;

Y también tengo Checkbox, cuando lo marcas, debería mostrar todos los detalles de la fila. Estoy intentando este código para mostrar todos los detalles de fila

if ((bool)chkboxRowDetails.IsChecked)
            {
                DataGrid1.RowDetailsVisibilityMode = Microsoft.Windows.Controls.DataGridRowDetailsVisibilityMode.Visible;

                for (int i = 0; i < DataGrid1.Items.Count-1; i++)
                {
                    Microsoft.Windows.Controls.DataGridRow row = (Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromIndex(i));
                    DataGridDetailsPresenter presenter = FindVisualChild<DataGridDetailsPresenter>(row);
                    DataTemplate template =presenter.ContentTemplate;

                    TextBlock txt = (TextBlock)template.FindName("rowdetails", presenter);
                    txt.Text = retString;


                }

Pero está dando error. "Esta operación solo es válida en los elementos que tienen esta plantilla aplicada". Mostrando en línea TextBlock txt = (TextBlock) template.FindName ("rowdetails", presentador); ¿Tienes alguna idea de lo que está mal en mi código? Quiero mostrar todos los detalles de la fila marcando la casilla de verificación. Mi plantilla de datos está aquí

<WpfToolkit:DataGrid.RowDetailsTemplate>

            <DataTemplate>

                <StackPanel HorizontalAlignment="Stretch" Orientation="Vertical" Margin="5">
                    <TextBlock Foreground="CadetBlue" FontSize="14"
                        TextWrapping="Wrap" Name="rowdetails" HorizontalAlignment="Stretch"
                        />
                </StackPanel>
            </DataTemplate>


        </WpfToolkit:DataGrid.RowDetailsTemplate>

Respuestas a la pregunta(2)

Su respuesta a la pregunta