如何在 DataGrid RowDetailTemplate 中获取控件

发布于 2024-11-02 12:41:04 字数 1857 浏览 0 评论 0原文

我有这个 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

I have this Xaml Code and I want to get the DataGrid "dgRemplacement", I try using Name but it doesn't work also with 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;
}

I have succeeded to get the TabItem

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小糖芽 2024-11-09 12:41:04

尝试类似:

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

FindName 参考

Try something like:

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

FindName Reference

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文