我目前正在编写一个具有组合框的 wpf 应用程序。我从数据库中获取组合框的值(使用存储过程),但是,如果我将它们放入 cbo,我有大约 13,000 多个值,这会减慢应用程序的速度。
我想要的是一个仅显示 10 个值的 cbo(用户可编辑),并且在用户键入时,列表会更新。
我对 wpf 很陌生(几天,甚至一周),所以请清楚。
谢谢!!!
简
请查看这些描述使用ComboBox
es 进行虚拟化的帖子:
尝试在 google 中搜索更多示例。
如果您是新手,我不确定您能理解的答案有多复杂,您知道 DataBinding 吗?
无论如何,这就是我的做法。
在 ComboBox 的 ViewModel 中声明您正在管理的类型的 ObservableCollection(这是在 ComboBox 的 DataContext 属性中设置的对象)。当用户键入信息时,它会在该事件的 EventHandler 上引发 TextChanged 事件,使用部分字符串从数据库中获取信息,然后获取结果,并将其放入 ObservableCollection。
为此,您需要转到 ComboBox 并在 ItemsSource 属性上启用 DataBinding,如下所示:
ItemsSource={Binding Mode=OneWay, Path=NameOfObservableCollectionProperty}