0

我目前正在编写一个具有组合框的 wpf 应用程序。我从数据库中获取组合框的值(使用存储过程),但是,如果我将它们放入 cbo,我有大约 13,000 多个值,这会减慢应用程序的速度。

我想要的是一个仅显示 10 个值的 cbo(用户可编辑),并且在用户键入时,列表会更新。

我对 wpf 很陌生(几天,甚至一周),所以请清楚。

谢谢!!!

4

2 回答 2

0

请查看这些描述使用ComboBoxes 进行虚拟化的帖子:

WPF ComboBox 通过绑定大型集合的性能问题

通过 UI 虚拟化实现更快的控制

热门提示!提高组合框的性能

尝试在 google 中搜索更多示例。

于 2013-07-31T13:07:19.757 回答
0

如果您是新手,我不确定您能理解的答案有多复杂,您知道 DataBinding 吗?

无论如何,这就是我的做法。

在 ComboBox 的 ViewModel 中声明您正在管理的类型的 ObservableCollection(这是在 ComboBox 的 DataContext 属性中设置的对象)。当用户键入信息时,它会在该事件的 EventHandler 上引发 TextChanged 事件,使用部分字符串从数据库中获取信息,然后获取结果,并将其放入 ObservableCollection。

为此,您需要转到 ComboBox 并在 ItemsSource 属性上启用 DataBinding,如下所示:

ItemsSource={Binding Mode=OneWay, Path=NameOfObservableCollectionProperty}
于 2013-07-31T13:10:24.213 回答