如何获得下拉列表中显示的wpf组合框的第一项?

时间:2013-07-09 14:08:24

标签: wpf combobox virtualizingstackpanel

我在ComboBox中有一个很大的列表(~10000项),它使用VirtualizingStackPanel类。滚动性能很好,无论如何我想知道如何识别GUI中显示的顶部项目 - 不一定是索引为零的项目,而是当前滚动项目列表顶部的项目。 ?谢谢。

1 个答案:

答案 0 :(得分:0)

我使用FrameworkElement.IsVisible属性。使用下面链接中的方法,您还可以检查元素是否部分可见(这在您的情况下很有用):

In WPF, how can I determine whether a control is visible to the user?

您可以(通过使用后台线程或在用户在组合框中滚动时进行计算),检查ComboBox中的项目以查看其FrameworkElement.IsVisible属性是否设置为true。如果是这样,则在其ViewModel中更新元素IsVisible属性。现在,您在ViewModel中有一个标记可见或不标记的项目集合(并且不断更新它所代表的CoboBox项目的可见性)。现在,您可以在项目集合中找到第一个使用.First(x => x.IsVisible == true)的内容。