C# 按需IEnumerable绑定到ListBox

C# 按需IEnumerable绑定到ListBox,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个可能相当大的对象列表,我想绑定到WPF中的列表框。但是,我希望列表以增量方式加载。如何将列表框绑定到一个IEnumerable,该IEnumerable按需加载自己,使列表框仅尝试枚举显示所需的内容?使用winform,“虚拟模式”-但请注意,这在WPF中是不同的。 你可以看到柱子 我大体上同意Drew Marsh的观点——让用户过滤数据,而不是滚动浏览数据。您可以将列表存储在数据库中——可能是内存中的列表——然后使用LINQ检索IEnumerable中所需的块。WPF ListBox使

我有一个可能相当大的对象列表,我想绑定到WPF中的列表框。但是,我希望列表以增量方式加载。如何将列表框绑定到一个IEnumerable,该IEnumerable按需加载自己,使列表框仅尝试枚举显示所需的内容?

使用winform,“虚拟模式”-但请注意,这在WPF中是不同的。 你可以看到柱子


我大体上同意Drew Marsh的观点——让用户过滤数据,而不是滚动浏览数据。

您可以将列表存储在数据库中——可能是内存中的列表——然后使用LINQ检索IEnumerable中所需的块。

WPF ListBox使用a作为其项的布局控件。可以使用以下XAML将VirtualzingStackPanel设置为仅根据需要加载项:

<ListBox 
    VirtualizingStackPanel.IsVirtualizing="True"
    ItemSource="..."
    />


这不是此应用程序的正确方法。用户仍然可以过滤ans排序,但它将受到必须保持完整的图形结构的约束。这是一个非常好的建议,除了我试图避免将所有内容都存储在内存中,而不仅仅是UI中。然后,您可以将数据存储在完整的数据库中,并根据需要使用LINQ to SQL检索数据。在Silverlight中,我看到,
是虚拟化的
属性是只读的。怎么样?