Как я могу получить элемент управления внутри DataGrid RowDetailTemplate

#wpf #wpf-controls #wpfdatagrid

#wpf #wpf-элементы управления #wpfdatagrid

Вопрос:

У меня есть этот код Xaml, и я хочу получить DataGrid «dgRemplacement», я пытаюсь использовать Name, но это также не работает с Uid.

 <DataGrid.RowDetailsTemplate>
         <DataTemplate>
            <Grid Background="#FF4088C0" Name="DetailGrid">
             <TabControl>                           
                 <TabItem Header="Detaille">                                
                 </TabItem>
                        <TabItem Header="Intervention">                                
                        </TabItem>
                        <TabItem Header="Detaille Intervention">                                
                 </TabItem>
                        <TabItem Header="Remplacement">
                            <Grid Background="#FFE5E5E5">
                                <DataGrid Name="dgRemplacement" x:Uid="DataGrid1">
                                    <DataGrid.Columns>
                                        <DataGridTextColumn Header="Article(Serie)" Binding="{Binding Designation}"/>
                                        <DataGridTextColumn Header="Qte" Binding="{Binding Qte}"/>
                                    </DataGrid.Columns>                                        
                                </DataGrid>
                            </Grid>
                        </TabItem>                          
            </TabControl>
            </Grid>
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>
  
 private void dgBILigne_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)
{
        TabControl tc = (e.DetailsElement as Grid).Children[0] as TabControl;
        TabItem ti = tc.Items[3] as TabItem;
}
  

Мне удалось получить TabItem

Ответ №1:

Попробуйте что-то вроде:

 var dataGrid = (e.DetailsElement as FrameworkElement).FindName("dgRemplacement") as DataGrid;
  

FindName Ссылка