Установка фокуса listboxItem при загрузке страницы в Silverlight - PullRequest
1 голос
/ 19 марта 2010

Я хочу установить фокус на первый элемент списка, на загрузку страницы.

Не могу использовать:

listArtist.SelectedIndex=

при переходе на другую страницу с выбранным индексом.

У меня есть следующий код, но он не работает:

 void Event_Completed(object sender, RMSResponseEventArgs e)
    {

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


    }

1 Ответ

2 голосов
/ 20 марта 2010

Итак, наконец-то у меня появился способ сработать. Прежде всего мне пришлось удалить событие slectedIndex_Changed, вместо этого использовать событие нажатия клавиши (при нажатии клавиши Enter) для перехода на другую страницу.

Теперь, что я сделал, установил фокус поля списка на загруженном событии списка. Если вы попробуете это из XAML, оно не будет работать, так как источник данных не установлен в это время. Так что мой код выглядит примерно так:

    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();
    }

Теперь, если вам интересно, как я управлял событием slectedIndex_changed, оно выглядит следующим образом:

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

    }
...