Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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
C# 使用大型集合-Windows 8 DataGrid_C#_Xaml_Windows 8_Datagrid - Fatal编程技术网

C# 使用大型集合-Windows 8 DataGrid

C# 使用大型集合-Windows 8 DataGrid,c#,xaml,windows-8,datagrid,C#,Xaml,Windows 8,Datagrid,我正在使用Windows8应用程序(C#/XAML)。 其中一个要求是在DataGrid中加载一组单词,我们在这里使用语义缩放选项 当集合中的项目超过1500个时,应用程序将挂起并出现以下错误: +异常{“没有足够的配额可用于处理此命令。(来自HRESULT的异常:0x80070718)”}系统。异常 使用的一些代码: _collection = _readDictionary.GetModeDetailsForModeDetails(modeId); var query = from ite

我正在使用Windows8应用程序(C#/XAML)。 其中一个要求是在DataGrid中加载一组单词,我们在这里使用语义缩放选项

当集合中的项目超过1500个时,应用程序将挂起并出现以下错误:

+异常{“没有足够的配额可用于处理此命令。(来自HRESULT的异常:0x80070718)”}系统。异常

使用的一些代码:

_collection = _readDictionary.GetModeDetailsForModeDetails(modeId);

var query = from item in _collection
            orderby (item.WordName.ToLower())
            group item by item.WordName[0].ToString().ToUpper() into g
            select new { GroupName = g.Key.ToString().ToUpper(), Items = g };

foreach (var g in query)
{
  GroupInfoList<Words> info = new GroupInfoList<Words>();
  info.Key = g.GroupName;

  foreach (var item in g.Items)
  {
    info.Add(item);
  }

  groups.Add(info);
}

bindGroupData.Source = groups;
(semanticZoom.ZoomedOutView as ListViewBase).ItemsSource = bindGroupData.View.CollectionGroups;
\u collection=\u readDictionary.GetModeDetailsForModeDetails(modeId);
var query=来自集合中的项
orderby(item.WordName.ToLower())
按项对项进行分组。WordName[0]。ToString().ToUpper()到g
选择新建{GroupName=g.Key.ToString().ToUpper(),Items=g};
foreach(查询中的var g)
{
GroupInfoList info=新的GroupInfoList();
info.Key=g.GroupName;
foreach(g.Items中的var项)
{
信息添加(项目);
}
组。添加(信息);
}
bindGroupData.Source=组;
(semanticZoom.ZoomedOutView作为ListViewBase)。ItemsSource=bindGroupData.View.CollectionGroups;
这是XAML代码:

 <SemanticZoom  x:Name="semanticZoom" VerticalAlignment="Bottom" >
        <SemanticZoom.ZoomedOutView>
            <GridView ScrollViewer.IsHorizontalScrollChainingEnabled="False" VerticalAlignment="Top" HorizontalAlignment="Left">
                <GridView.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Group.Key}" FontFamily="Segoe UI Light" Foreground="Red" FontSize="24"/>
                    </DataTemplate>
                </GridView.ItemTemplate>
                <GridView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapGrid ItemWidth="75" ItemHeight="75" MaximumRowsOrColumns="5" VerticalChildrenAlignment="Center" />
                    </ItemsPanelTemplate>
                </GridView.ItemsPanel>
                <GridView.ItemContainerStyle>
                    <Style TargetType="GridViewItem">
                        <Setter Property="Margin" Value="4" />
                        <Setter Property="Padding" Value="10" />
                        <Setter Property="BorderBrush" Value="Gray" />
                        <Setter Property="BorderThickness" Value="2" />
                        <Setter Property="HorizontalContentAlignment" Value="Center" />
                        <Setter Property="VerticalContentAlignment" Value="Center" />
                    </Style>
                </GridView.ItemContainerStyle>
            </GridView>
            </SemanticZoom.ZoomedOutView>
        <SemanticZoom.ZoomedInView>
            <GridView x:Name="GrdViewWord" SelectionMode="Multiple" ItemsSource="{Binding Source={StaticResource bindGroupData}}"  ItemClick="GrdViewWord_ItemClick" SelectionChanged="GrdViewWord_SelectionChanged" Background="#FFE2E2E2" Height="396" VerticalAlignment="Top" >
                <!-- ItemContainerStyle="{StaticResource GridViewItemStyle}"   -->
                <GridView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <!--<WrapGrid Orientation="Vertical"  Background="{Binding BG}"/>-->
                        <StackPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </GridView.ItemsPanel>

                <GridView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Height="20" Width="75"  >
                            <TextBlock Text="{Binding WordName}" Tag="{Binding WordID}" FontFamily="Segoe UI" FontSize="12" Margin="5,5,0,0" Foreground="Black" HorizontalAlignment="Left" Height="20" Padding="0"/>
                        </StackPanel>
                    </DataTemplate>
                </GridView.ItemTemplate>

                <GridView.GroupStyle>
                    <GroupStyle>
                        <GroupStyle.HeaderTemplate>
                            <DataTemplate>
                                <Grid Margin="10">
                                    <!--Background="{StaticResource ApplicationPageBackgroundThemeBrush}"-->
                                    <TextBlock Text='{Binding Key}'  FontSize="25" Foreground="Red" Margin="5" />
                                </Grid>
                            </DataTemplate>
                        </GroupStyle.HeaderTemplate>

                        <GroupStyle.Panel>
                            <ItemsPanelTemplate>
                                <VariableSizedWrapGrid Orientation="Vertical" Height="300" />
                            </ItemsPanelTemplate>
                        </GroupStyle.Panel>
                    </GroupStyle>
                </GridView.GroupStyle>
            </GridView>
        </SemanticZoom.ZoomedInView>
    </SemanticZoom>


有人能帮我解决这个问题吗?

Syncfusion为WinRT提供了最快的数据网格控制。它支持UI虚拟化


您必须使用虚拟化。GridView可以很容易地虚拟化(UI虚拟化或数据虚拟化)。查看以了解您需要哪种类型的虚拟化

这似乎是语义缩放的一个大问题,任何超过1200项的东西都不起作用

在上面关于“将虚拟化与列表或网格结合使用”的链接中,它表示“分组数据-分组数据不支持UI虚拟化”

语义缩放使用分组数据,因此不起作用

就连微软自己的语义示例也出现了超过1200项的错误

此链接可能有用:


谢谢..但它不是默认控件。我们需要默认控件,而不是使用基于自定义或第三方的实用程序,现在性能有所提高。