Como alterar o texto do TextBlock que está no DataTemplate de detalhes da linha para cada detalhes da linha do DataGri
Eu tenho o Datagrid, que está clicando com o mouse em cada linha, mostrando os detalhes da linha da grade de dados. aqui está o 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;
E também tenho a caixa de seleção; quando você a verifica, ela deve mostrar todos os detalhes da linha. Estou tentando este código para mostrar todos os detalhes da linha
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;
}
Mas está dando erro. "Esta operação é válida apenas em elementos que têm este modelo aplicado." Mostrando na linha TextBlock txt = (TextBlock) template.FindName ("rowdetails", apresentador); Você tem alguma idéia do que está errado no meu código? Quero mostrar todos os detalhes da linha marcando a caixa de seleção. Meu modelo de dados está aqui
<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>