我有一个可能相当大的对象列表,我想绑定到WPF中的ListBox。但是,我想逐步加载List本身。如何将ListBox绑定到按需加载自身的IEnumerable,以便列表框只尝试枚举显示所需的数量?
答案 0 :(得分:3)
WPF ListBox使用VirtualizingStackPanel作为其项目的布局控件。您可以将VirtualizingStackPanel设置为仅根据需要使用以下XAML加载项目:
<ListBox
VirtualizingStackPanel.IsVirtualizing="True"
ItemSource="..."
/>
答案 1 :(得分:1)
您可以将列表存储在数据库中 - 可能是内存中的 - 然后使用LINQ在IEnumerable中检索所需的块。
答案 2 :(得分:0)
使用winform,“虚拟模式” - 但是AFAIK,这在WPF中是不一样的。 你可以看到this MSDN forum帖子。
我基本同意Drew Marsh - 让用户过滤数据,而不是滚动数据。