2011-12-28 80 views
1

我们正在创建一个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> 

任何想法来解决上述问题是非常明显的。

回答

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

+0

感谢Pansoul一个DataContext的例子,但我们上面的方法都试过为好。仍然没有成功。我们为此开发了一个示例应用程序。请通过以下链接查看:'https://skydrive.live.com/?cid=862cc12c7e381559&id=862CC12C7E381559!118' – Yogesh 2011-12-29 05:44:02