Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF数据网格虚拟化_Wpf_Datagrid_Virtualization - Fatal编程技术网

WPF数据网格虚拟化

WPF数据网格虚拟化,wpf,datagrid,virtualization,Wpf,Datagrid,Virtualization,我试图通过对数据进行两级排列来绕过与WPF数据网格相关的虚拟化问题 <DataGrid.RowDetailsTemplate> <DataTemplate> <ListView Name="InnerGrid" ItemsSource="{Binding EmpCollection}"> <ListView.View> <G

我试图通过对数据进行两级排列来绕过与WPF数据网格相关的虚拟化问题

    <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>
每个国家/地区的行为标题行,单击标题行可显示该国家/地区的员工

    <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>
本质上,我试图将datagrid的每个元素作为listview项

    <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>
以下是我的疑问。任何帮助都将不胜感激

    <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>
  • 我希望Country行跨越所有列,以便显示 像标题行一样
  • 我不希望单击标题行时列标题显示在每个国家/地区的下方
  • 我希望特定国家/地区数据行中的数据与主网格中的数据对齐 列
  • 如果有其他更好的方法解决此问题,请提供详细信息/参考资料

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

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


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