我正在尝试使用分组创建数据网格,并且在水平滚动期间我得到显示损坏(空白区域).只有在定义了GroupStyle.ContainerStyle时才会出现此问题.数据网格应包含200行或更多行以重现问题.
UPDATE2: 相关的Microsoft Connect反馈.
更新:social.msdn.com的
微软人员指出,添加分组会关闭数据网格虚拟化.可能这是问题的根源.我从我的样本中删除了分组并设置VirtualizingStackPanel.IsVirtualizing为false并完全相同的腐败.
代码重现问题:
<DataGrid ItemsSource="{Binding Source={StaticResource ResourceKey=cvsGoods}}"
CanUserAddRows="False" CanUserReorderColumns="False"
CanUserDeleteRows="False" CanUserResizeRows="False"
CanUserSortColumns="False" AutoGenerateColumns="True">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<ItemsPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
在几个水平滚动向右和向后返回左侧空白区域出现在左侧.我试过WinXP和Win7.
问题是:如何摆脱那个bug?有没有解决方法?有什么建议?
截图说明了问题:

在.NET 4.5中,可以选择使用随机字符串哈希码生成.这意味着,在不同应用程序域中计算的相同字符串的哈希码将是不同的.(参见http://msdn.microsoft.com/en-us/library/jj152924.aspx)
问题是:这个选项的实际用途是什么?换句话说,在什么情况下(场景)我需要打开它?