【发布时间】:2019-06-12 12:07:00
【问题描述】:
我有一个包含大约 200 行的 DataGrid,当我尝试全选 (Ctrl+A) 时,大约需要 5 秒。行渲染速度很快,但不是选择。到目前为止,我已经检查了 Converter、Events 和 Bindings,但没有调用 select。有什么想法吗?
编辑: 这是一段代码。
ViewModel 有一个属性:
private ObservableCollection<BlaBla> items;
public ObservableCollection<BlaBla> Items
{
get { return items; }
set { items = value; NotifyPropertyChanged(); }
}
此属性设置一次。
XAML 如下所示:
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="{Binding IsPerformingSimulations, Converter={StaticResource boolToBoolInvert}}" CanUserReorderColumns="False"
CanUserResizeColumns="True" CanUserResizeRows="False" CanUserSortColumns="True" GridLinesVisibility="All" SelectionMode="Extended" SelectionUnit="FullRow"
ItemsSource="{Binding Items}" VirtualizingStackPanel.IsVirtualizing="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Bla1" Binding="{Binding Bla1Prop}" IsReadOnly="True" />
<DataGridTextColumn Header="Bla2" Binding="{Binding Bla2Prop}" IsReadOnly="True" />
<DataGridTextColumn Header="Bla3" Binding="{Binding Bla3Prop}" IsReadOnly="True" />
<DataGridTextColumn Header="Bla4" Binding="{Binding Bla4Prop}" IsReadOnly="True" />
<DataGridTextColumn Header="Bla5" Binding="{Binding Bla5Prop}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
编辑 2: 以防万一。 C# 7.3、.NET 4.7.1 和 Windows 7 64 位。
【问题讨论】:
-
将模式改为release,试一次。
-
你能分享一下属性getter吗?他们有特殊的逻辑吗? + 你有任何装订错误吗? (检查输出 -> 调试窗口)
-
Avinash Reddy,我试过了,结果是一样的。
-
@itaiy,我没有绑定错误。 setter 中根本没有什么特殊的逻辑。