我有一个大的列表(〜10000项)在一个ComboBox中,使用VirtualizingStackPanel类。滚动性能很好,无论如何,我想知道如何识别GUI中显示的顶层项目 - 它不一定是索引为零的顶层项目,而是位于当前滚动项目列表之上的顶层项目。 ?谢谢。如何获取下拉菜单中显示的wpf组合框的第一项?
回答
我使用FrameworkElement.IsVisible属性。使用方法在下面的链接,你也可以检查是否一个元素是部分可见的(这将是你的情况很有用):
In WPF, how can I determine whether a control is visible to the user?
你可以(通过使用一个后台线程或做用户在组合框中滚动时的计算),检查组合框中的项目以查看它们的FrameworkElement.IsVisible属性是否设置为true。如果是这样,则在其ViewModel中更新该元素的IsVisible属性。现在,您的ViewModel中有一些项目被标记为可见或不可见(并且不断更新它所代表的CoboBox项目的可见性)。现在您可以找到哪些是第一个使用.First(x => x.IsVisible == true)的项目集合。
我不知道如何检索Frameworkelement,因为我实际上只对viewmodel进行操作,并且已经设置了Combobox ItemsSource。 – deafjeff
你的答案是一个好方法,但是如果你已经设置了ItsmSource,是否真的存在ComboBoxItems的实例?例如,当你想在Items memebr上操作时,由于你设置了ItemsSource,你会得到一个异常。 – deafjeff
我刚刚通过指定ItemsSource来读取,这些Items是由wpf系统自动生成的。这解释了他们无法由Items成员访问。这使得检索所属框架元素成为更具挑战性的任务。任何帮助赞赏。 – deafjeff
- 1. 如何在组合框下拉菜单中显示两列?
- 2. 如何在WPF中的组合框中显示下拉列表?
- 3. 在wpf组合框内显示选项卡控件下拉菜单
- 4. 下拉菜单悬停显示第一
- 5. 在组合框下拉菜单中显示gridview。 C#
- 6. 如何使Bootstrap下拉按钮显示下拉菜单中的第一个值?
- 7. 获取下拉菜单以显示onfocus?
- 8. wordpress菜单下拉菜单在第一次下拉菜单后没有显示
- 9. 如何选择第一个下拉菜单中的某个值时显示第二个下拉菜单?
- 10. 双下拉菜单不显示第二个下拉菜单
- 11. 根据第一个下拉菜单选项显示第二个下拉菜单选项不工作
- 12. SAPUI5 - 组合框/下拉或菜单以显示层次数据
- 13. 组合框文本显示与下拉菜单不同
- 14. 在选择下拉菜单中的第一个选项时,它不应该在下拉菜单中显示
- 15. 如何使用meteor.js显示第一个下拉菜单的第二个下拉菜单?
- 16. ASPxGridView - 如何隐藏层叠组合框中的下拉菜单
- 17. 显示文本框中2个下拉菜单的选项值?
- 18. 如何获取extjs组合框中高亮显示的项目?
- 19. 如何根据下拉选项显示隐藏下拉菜单
- 20. PyGTK:从以前的组合框下拉菜单中更改组合框下拉菜单
- 21. 如何隐藏android spinner下拉菜单中的第一项?
- 22. HTML下拉菜单 - 下拉菜单中的第一项无法选择
- 23. 单击下拉框中的菜单项后隐藏下拉框
- 24. WPF组合框项目消失/从下拉菜单中重新出现
- 25. 文本框/下拉菜单组合
- 26. C#硒 - 下拉菜单/组合框
- 27. 如何在下拉菜单中显示不同的选项?
- 28. 如何突出显示下拉菜单中的选项?
- 29. 如何在WPF中使用DataGrid下拉菜单创建组合框?
- 30. aspx下拉菜单添加项目如何获取下拉菜单实例
你是否将列表绑定到一组项目?还是你手动添加它们?另外,你是说你想在当前视图中的第一个项目?那么,如果项目52是第一个可见项目,那么您将能够识别52? – Killingsworth
组合框通过ItemsSource绑定到一个集合,并且是的,我想要52,如果它在顶部。 – deafjeff