我有一个WPF应用程序,我显示并隐藏大量的UserControl对象。 XAML代码如下所示:缓存UserControl对象
<ItemsControl ItemsSource="{Binding Path=MyListOfStuff}" >
<Controls:MyControl Stuff="{Binding}"/>
</ItemsControl>
创建这些对象需要很长时间。分析显示'InitializeComponent'需要大量的MyControl对象。我想预先创建这些对象以减少这个时间。我怎样才能做到这一点?我仍然需要xaml代码,并且不想仅用代码来替换它。
无法使用虚拟化,因为列表中的项有时比视图大,所以CanContentScroll必须为False。
看看这个:http://stackoverflow.com/questions/2783845/wpf-virtualizing-an-itemscontrol虽然我不确定是否virualizing会帮助你的情况,因为你显示和隐藏不滚动。 – Ray 2012-01-10 14:12:17
查看http://stackoverflow.com/questions/22218506/wpf-canvas-based-itemscontrol-with-minimum-recycled-items/22220980#comment33743843_22220980 CachingItemsControl实现 – 2014-03-07 10:21:23