使用Expander Control显示嵌套的datagrid

时间:2011-12-28 13:48:14

标签: .net wpf datagrid expander

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

以下是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>

任何解决上述问题的想法都非常值得注意。

1 个答案:

答案 0 :(得分:0)

尝试压制画布

    <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>

如果它不起作用,请发送填充datagrid的datacontext示例