我有一个包含近 1100 个元素的通用列表。这些元素中几乎有 10 个包含 1000 个元素(相同类型)。元素绑定到 UI DataGrid。迭代这个列表需要很长时间 5-6 秒(因为我在迭代中操作的属性是数据绑定到 DataGrid 属性的)。
这是迭代代码:
Parallel.ForEach(this.AllParameters, par =>
{
foreach (Parameter subPar in par.WrappedSubParameters)
{
subPar.IsSelected = false;
}
par.IsSelected = false;
});
Xaml 中的代码片段如下所示:
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=OneWay}" />
在我之前的问题中,有人建议我使用并行迭代,但它会挂起 UI 并且永远不会返回。如何在 MVVM 中进行迭代之前暂停 UI。我是否以正确的方式编写代码?请建议。谢谢