2010-03-19 4 views
1

Je souhaite définir le premier élément de la zone de liste, sur pageload.Définition du focus de listboxItem sur pageload dans Silverlight

Je ne peux pas utiliser:

listArtist.SelectedIndex= 

que je navigue vers une autre page sur indexChanged sélectionnée.

J'ai le code suivant, mais il ne fonctionne pas:

void Event_Completed(object sender, RMSResponseEventArgs e) 
    { 

     listArtist.ItemsSource = e.eOutData; 
     listArtist.Focus(); 


    } 

Répondre

2

Donc finalement j'ai eu un moyen de le travailler. Tout d'abord, j'ai dû supprimer l'événement slectedIndex_Changed, à la place utilisé l'événement de touche enfoncée (On Enter Key Press) pour naviguer vers une autre page.

Maintenant, ce que j'ai fait est de définir le focus de la zone de liste sur l'événement chargé de la zone de liste. Si vous l'essayez à partir de XAML, cela ne fonctionnera pas car la source d'articles n'est pas définie à ce moment-là. Donc, mon code est quelque chose de similaire comme ci-dessous:

void Event_Completed(object sender, RMSResponseEventArgs e) 
    { 

     listArtist.ItemsSource = e.eOutData; 

     listArtist.Loaded += new RoutedEventHandler(listbox_Loaded); 

    } 
    void listbox_Loaded(object sender, RoutedEventArgs e) 
    { 
     listArtist.SelectedIndex = 0; 
     listArtist.Focus(); 
    } 

Maintenant, si vous êtes intéressé comment je l'événement slectedIndex_changed il va comme ci-dessous:

private void listBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) 
    { 
     // Your Code goes Here ;) 

    } 
Questions connexes