WPF Datagrid虚拟化

时间:2013-05-31 10:29:48

标签: wpf datagrid virtualization

我试图通过两个级别的数据排列来绕过与WPF Datagrids相关的虚拟化问题。

每个国家/地区的行都是标题行,单击标题行时会显示该国家/地区的员工。

基本上,我试图将datagrid的每个元素作为listview项。

以下是我的疑问。任何帮助将不胜感激。

  1. 我希望Country行跨越所有列以便显示 像标题行
  2. 我不希望在单击标题行时,列标题显示在每个国家/地区下方
  3. 我希望国家特定数据行中的数据与主网格对齐 列。
  4. 如果还有其他更好的方法可以解决此问题,请提供详细信息/参考资料。

    enter image description here

                              
                
                                                   

        <DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <ListView Name="InnerGrid" ItemsSource="{Binding EmpCollection}">
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="EmpId">
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding Empid}">
    
                                        </TextBlock>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Name">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Name}">
    
                                    </TextBlock>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Country">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Empid}">
    
                                    </TextBlock>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Phone">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Phone}">
    
                                    </TextBlock>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Date">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Date}">
    
                                    </TextBlock>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                        </GridView>
                    </ListView.View>
                </ListView>
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>
    

0 个答案:

没有答案