我使用一个ItemsControl显示条目的ALIST和ITRS XAML是像ItemsControl的渲染慢慢
<ItemsControl ItemsSource="{Binding ShelfItemsCollection}" Name="shelfGridView" Margin="5" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Stackpanel>
<Image Width="150" Height="200" Stretch="Fill" Source="{Binding CoverImage}" ></Image>
+
some other infos
</Stackpanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
我现在面临的问题是我在列表中有近100个项目,我做了一些根据某些属性对列表进行过滤操作,并将结果限制为较少(否一次说20个项目),以便进行此过滤,因此需要花费大量时间来刷新和加载列表视图。 这是我用来过滤
ICollectionView dataView = CollectionViewSource.GetDefaultView(shelfGridView.ItemsSource);
dataView.Filter = CloudFilter;
dataView.Refresh();
private bool CloudFilter(object item)
{
MyObject lib = item as MyObject;
return lib.Property !=valuetofilter;
}
什么办法可以改善演出]或慢速呈现任何具体原因的代码?
您是否使用过滤器将项目限制为20? –
根据一些属性限制项目,你可以看到CloudFilter(),基于一个属性值,例如,如果property.Contains(“日本”),那么它只显示与期限日本相关的记录,它不需要计数将会是20.我也编辑了这个问题 –
发布更多的代码让我们测试你的例子和你的数据结构。 –