Ir a un PivotItem concreto desde listBox1_SelectionChanged

Para dar las gracias debes entrar o registrarte en el foro

Nuevo miembro
Nuevo miembro
Mensajes: 3 Agradecido: 0
29 Nov 2011, 18:57# 1

Buenas a tod@s. Este es mi primer mensaje en el foro y espero que me sirvais de ayuda.

Estoy haciendo mi primera aplicación para Windows Phone y estoy atascado en un asunto. Tengo un panorama principal MainPage.xaml, donde tengo en uno de los panoramas una lista obtenida de un xml:


1
../Imagenes/1980ironmaiden.jpg
1980 - Iron Maiden

.....


Metí el id porque me dijeron que sería posible a través del listBox_SelectionChanged ir a un pivotItem en concreto de la página pivot Discografia.xaml. Lo siguiente ha sido mi idea principal, pero evidentemente no funciona:

private void listBox1_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
// TODO: Agregar implementación de controlador de eventos aquí.
Disc seleccion = (Disc)e.AddedItems[0];
String parametro = string.Format("?page={0}", seleccion.Id);
NavigationService.Navigate(new Uri(string.Format("Discografia.xaml{0}", parametro), UriKind.Relative));
}

¿Podéis ayudarme a como hacerlo? Muchas Gracias.

Gracias  
Etiquetado en:
Colaborador
Colaborador
Mensajes: 92 Agradecido: 0
01 Dic 2011, 00:39# 2

Hola Astaroth_SA,

Para ir a un PivotItem en concreto lo puedes hacer con la propiedad SelectedIndex del control Pivot que tengas puesto, pero eso no tiene nada que ver con recuperar el Id del disco, o quizás es que no he entendido muy bien tu problema.

Un saludo!

Nokia Lumia 800 (WP 7.5)
MCTS: .NET Framework 3.5 ASP.NET Applications
http://www.komodosoft.net
http://metropic.es
Gracias  
Nuevo miembro
Nuevo miembro
Mensajes: 3 Agradecido: 0
01 Dic 2011, 21:58# 3

Esta es mi lista:
Imagen

Y lo que quiero es que al picar en un disco vaya al siguiente Pivot al índice correspondiente.

Imagen

Me dijeron que tenía que extraer un id de cada disco para pasarlo y con ello ir al índice del Pivot directamente, pero no sé. Muchas gracias.

Gracias  
Nuevo miembro
Nuevo miembro
Mensajes: 3 Agradecido: 0
02 Dic 2011, 21:03# 4

[SOLUCIONADO] :-:-:
Tras mucho trastear y jugar al final he conseguido hacerlo!! Dejo aquí la solución por si alguien la necesita en un futuro.

En la página de nuestro panorama:
private void listBox1_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
// TODO: Agregar implementación de controlador de eventos aquí.
Disc seleccion = (Disc)e.AddedItems[0];

String parametro = seleccion.Id;
NavigationService.Navigate(new Uri(string.Format("/PaginaPivot.xaml?parametro={0}", parametro), UriKind.Relative));
}

En el Pivot al que queremos ir:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);

String pivotId = this.NavigationContext.QueryString["parametro"];

nombrePivot.SelectedIndex = int.Parse(pivotId);
}

Tener en cuenta que los índices del pivot se enumeran desde 0

Gracias a ZinkPad por su ayuda.

Gracias  