2010-03-19 95 views
1

我想将焦点设置在页面加载的列表框的第一项上。在页面加载中设置listboxItem的焦点在Silverlight中

我不能使用:

listArtist.SelectedIndex= 

为我导航到所选indexChanged另一页。

我有下面的代码,但它不工作:

void Event_Completed(object sender, RMSResponseEventArgs e) 
    { 

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


    } 

回答

2

所以最后我有一个办法解决它。首先,我必须删除slectedIndex_Changed事件,而不是使用按键事件(On Enter Key Press)导航到另一个页面。

现在我所做的是将列表框的焦点设置在列表框加载的事件上。如果您将尝试从XAML它不会工作,因为itemssource当时没有设置。所以,我的代码如下一些事情类似:

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

    }