Используйте Expander Control для отображения вложенной сетки данных

Мы создаем приложение WPF, в котором мы должны отображать вложенную сетку данных. Для этого мы используем управление экспандером. Но вот что происходит: наша внутренняя сетка данных, которая отображается при нажатии кнопки расширения, скрывается за нашей основной/родительской сеткой данных.

Ниже приведен код 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>

Любая идея исправить вышеуказанную проблему очень ценна.


person Yogesh    schedule 28.12.2011    source источник


Ответы (1)


попытаться подавить холст

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

если это не сработает, можете ли вы отправить пример контекста данных, который заполняет сетку данных

person Pansoul    schedule 28.12.2011
comment
Спасибо Pansoul, но мы попробовали и описанный выше подход. До сих пор не добился успеха. Мы разработали пример приложения для того же. Пожалуйста, перейдите по следующей ссылке: 'skydrive.live.com/' - person Yogesh; 29.12.2011