2012-10-12 152 views
8

ESCENARIO:En WP7.1, el índice seleccionado de ListBox no parece funcionar como se esperaba. ¿Cómo se puede mostrar un elemento seleccionado en la parte superior?

  • En Windows Phone 7, estoy usando un cuadro de lista.
  • Supongamos que hay 200 elementos.
  • Ahora selecciono el 150º elemento de la lista
  • Quiero que la lista cargue y seleccione (y muestre) el 150º elemento en la parte superior de la lista después de la carga.

PROBLEMA:

  • estoy usando el HookScrollViewer() como se ha mencionado en esta página (ListBox offset in WP7)
  • La primera vez que el artículo se ha cargado la lista no muestra el artículo correcto (por ejemplo muestra el 148º elemento).
  • Salgo de esa página y hago clic 150 veces en el elemento
  • Ahora el índice de la lista es correcto y muestra el artículo 150 exactamente en la parte superior.

PREGUNTA:

  • Am I utilizando solución correcta?
  • ¿Qué ocurre? He intentado identificar la solución pero he fallado.

PISTA:

  • Si usted tiene un teléfono de Windows, por favor descargar la aplicación: http://tinyurl.com/9298cdx
  • Abrir cualquier capítulo y marcar algo (por Long-prensado) en el medio del capítulo.
  • Cierre la aplicación y vuelva a abrir la aplicación.
  • Haga clic en el marcador para abrirlo.
  • La primera vez no irá a la ubicación exacta.
  • Ahora NO cierre la aplicación, solo presione el botón Atrás y vuelva a hacer clic en el marcador.
  • ¡Esta vez la ubicación es correcta!
  • La pregunta es, ¿qué pasa con la primera vez?

CÓDIGO DE LA PÁGINA DE LECTURA:

Gracias mucho!

+0

Revisé el XAML, y no pasa nada allí. Eliminé la animación, tampoco funcionó. – Shahaab

+0

Agregué 'UpdateLayout()' para ScrollViewer y ListBox, no ayudó. – Shahaab

+0

El punto es que está funcionando bien, la segunda vez que funciona como debería, ¿por qué no funciona la primera vez? ¿Hay algo de lo que me estoy perdiendo? – Shahaab

Respuesta

1

Después de luchar, he encontrado el problema real y su solución.

problema real:

  • estoy usando fuentes externas, distintas de las que están incluidas en el WP por defecto.
  • Las fuentes externas necesitan algo de tiempo para cargarse en la memoria y luego se muestra el texto.
  • Mientras tanto, la lista ya está cargada, mientras se carga la fuente.
  • Finalmente, se muestra el texto, y (podría deberse a la expansión), la ubicación del índice seleccionado se mueve hacia abajo.
  • Sin cerrar la aplicación, la fuente parece permanecer en la memoria, y la próxima vez no lleva mucho tiempo, y la identificación del puntero se muestra correctamente.

Mi Solución:

  • que llenó las fuentes (externas) mientras se carga la página principal. Lleva una cantidad insignificante de tiempo y, por lo tanto, no afecta la eficacia de la aplicación (en términos de tiempo de carga)

Deseo que cualquier arquitecto pueda explicar de mejor manera que lo que ha estado sucediendo, o en otro palabras, estoy interesado en conocer los antecedentes técnicos del "problema real".

Muchas gracias a todos los que dieron sugerencias.

0

supongo que sus datos no se actualizan Usted puede tratar de utilizar INotifyPropertyChanged, Mira el ejemplo usted entenderá cómo utilizar

Cuestiones relacionadas