按需IEnumerable绑定到ListBox

时间:2008-12-08 13:22:03

标签: c# wpf data-binding

我有一个可能相当大的对象列表,我想绑定到WPF中的ListBox。但是,我想逐步加载List本身。如何将ListBox绑定到按需加载自身的IEnumerable,以便列表框只尝试枚举显示所需的数量?

3 个答案:

答案 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 - 让用户过滤数据,而不是滚动数据。