Pregunta

Básicamente lo que quiero hacer es permitir que un usuario escriba un valor de cadena y tienen la lista de desplazamiento para el elemento que coincide con el texto que ha escrito (o el primer partido como).

Si utilizo el método .ScrollIntoView (), el problema es que pone el tema en teh parte inferior de la zona visible si el artículo que está más abajo en la lista de la posición de desplazamiento actual, y es en la parte superior si es más alta en la lista de la posición de desplazamiento actual. Quiero que sea coherente por lo que es el primer elemento de la lista (a menos que, por supuesto, no puede ser debido a ser uno de los últimos "página" de material).

He tratado de fingir al seleccionar el elemento que es x más abajo en la lista, donde x es el número de elementos visibles. Esto funciona cuando se va hacia abajo, pero se rompe cuando se va a subir. y he sido incapaz de determinar qué índice es actualmente el que está en el punto visible la parte superior de mi lista.

Los cuadros de lista de Windows Forms tienen la propiedad .TopIndex cuales des exactamente lo que estoy buscando, pero no he podido encontrar el equivalente de WPF. Alguien por ahí tiene una idea de cómo lograr esto?

Gracias de antemano!

¿Fue útil?

Solución

Uso ScrollIntoView dos veces, primero en mostrar el último elemento de la lista, a continuación, mostrar su elemento seleccionado. De esta manera será siempre estar trabajando de abajo hacia arriba. Tendrá que llamar UpdateLayout después de cada llamada para asegurarse de que las posiciones son correctas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top