我在我的数据网格中添加了VirtualizingStackPanel,用于按需加载记录,以消除显示所有记录所需的过长加载时间。
<sdk:DataGrid VirtualizingStackPanel.VirtualizationMode="Recycling" VirtualizingStackPanel.IsVirtualizing="True" AutoGenerateColumns="False"
HorizontalAlignment="Center" Name="dgrGrid" Width="430" Height="270" Grid.Row="1" Margin="10,10,10,10" Loaded="dgrGrid_Loaded">
但是当我试图在datagrid上加载数据时,得到了这个错误......有人能指出我在哪里纠正这个错误?提前谢谢。
{System.Windows.Markup.XamlParseException:设置属性'System.Windows.Controls.VirtualizingStackPanel.IsVirtualizing'引发异常。 [行:37位置:123] ---&gt; System.NotSupportedException:无法设置只读属性'System.Windows.Controls.VirtualizingStackPanel.IsVirtualizing'。 在MS.Internal.XamlMemberInfo.SetValue(对象目标,对象值) 在MS.Internal.XamlManagedRuntimeRPInvokes.SetValue(XamlTypeToken inType,XamlQualifiedObject&amp; inObj,XamlPropertyToken inProperty,XamlQualifiedObject&amp; inValue) ---内部异常堆栈跟踪结束---
答案 0 :(得分:0)
您应该删除VirtualizingStackPanel.IsVirtualizing="True"
,因为异常消息表明它是 read-only property
。 SL datagrid已经使用虚拟化进行性能优化,因此您只需要设置您希望它使用的虚拟化模式。
您的DataGrid
将会像......
<sdk:DataGrid
VirtualizingStackPanel.VirtualizationMode="Recycling"
AutoGenerateColumns="False"
HorizontalAlignment="Center"
Name="dgrGrid"
Width="430"
Height="270"
Grid.Row="1"
Margin="10,10,10,10"
Loaded="dgrGrid_Loaded">