使用 Expander Control 显示嵌套数据网格

发布于 2024-12-23 07:15:07 字数 1341 浏览 3 评论 0原文

我们正在创建一个 WPF 应用程序,必须在其中显示嵌套数据网格。为此,我们使用扩展器控制。但是,发生的情况是,单击扩展器按钮时显示的内部数据网格隐藏在主/父数据网格后面。

以下是 datagrid 的 XAML 代码:

<DataGrid ItemsSource="{Binding abc}">
    <DataGrid.Columns>
       <DataGridTemplateColumn Width="*" Header="column1">
          <DataGridTemplateColumn.CellTemplate>
             <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding item}"/>
                    <Expander>                                                            
                         <Canvas>
                           <DataGrid ItemsSource="{Binding Path=xyz}">
                              <DataGrid.Columns>
                                  <DataGridTextColumn Header="column1"></DataGridTextColumn>
                                  <DataGridTextColumn Header="column1">
                              </DataGrid.Columns>
                            </DataGrid>
                         </Canvas>
                     </Expander>
                </StackPanel>
            </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
</DataGrid>

任何解决上述问题的想法都是非常值得赞赏的。

We are creating a WPF application in which we have to display nested datagrid. For this, we are using expander control. But, what happen is, our internal datagrid which is displaying on clicking of expander button, gets hidden behind our Main/Parent datagrid.

Following is the XAML code for datagrid:

<DataGrid ItemsSource="{Binding abc}">
    <DataGrid.Columns>
       <DataGridTemplateColumn Width="*" Header="column1">
          <DataGridTemplateColumn.CellTemplate>
             <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding item}"/>
                    <Expander>                                                            
                         <Canvas>
                           <DataGrid ItemsSource="{Binding Path=xyz}">
                              <DataGrid.Columns>
                                  <DataGridTextColumn Header="column1"></DataGridTextColumn>
                                  <DataGridTextColumn Header="column1">
                              </DataGrid.Columns>
                            </DataGrid>
                         </Canvas>
                     </Expander>
                </StackPanel>
            </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>
</DataGrid>

Any idea to fix the above issue is highly appreciable.

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

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

发布评论

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

评论(1

遗失的美好 2024-12-30 07:15:07

请尝试抑制画布,您可以发送一个填充数据网格的数据上下文示例吗

    <DataGrid ItemsSource="{Binding abc}" >
        <DataGrid.Columns>
            <DataGridTemplateColumn Width="*" Header="column1">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding item}"/>
                            <Expander IsExpanded="True">
                                    <DataGrid ItemsSource="{Binding Path=xyz}">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn Header="column1"/>
                                            <DataGridTextColumn Header="column1"/>
                                        </DataGrid.Columns>
                                    </DataGrid>
                            </Expander>
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

如果不起作用,

try to suppress the canvas

    <DataGrid ItemsSource="{Binding abc}" >
        <DataGrid.Columns>
            <DataGridTemplateColumn Width="*" Header="column1">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding item}"/>
                            <Expander IsExpanded="True">
                                    <DataGrid ItemsSource="{Binding Path=xyz}">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn Header="column1"/>
                                            <DataGridTextColumn Header="column1"/>
                                        </DataGrid.Columns>
                                    </DataGrid>
                            </Expander>
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

if it doesn't work can you please send a datacontext example that populate the datagrid

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