2012-02-28 145 views

回答

1

后右(或之后的任何点)设置的datacontext的列表框(或父对象 - 可能是页面),只需将选定的索引设置为列表中的第一项。

listbox.SelectedIndex = 0; 

如果你有一个处理器,当选定的索引被改变时,一定要忽略当你第一次设置索引。

0

你为什么不尝试像

var listBoxItem = ItemContainerGenerator.ContainerFromItem(myList.First()); 
listBoxItem.Focus(); 

listBoxItem.IsSelected = true; 
+0

我应该什么时候这样做?我必须使用特定事件来确保所有数据都已加载? – Sergejs 2012-02-28 16:45:32

+0

是的,只要你的数据有界,并且你确定ListBox有一些项目,你就可以这么做...... otherway'listBoxItem'将是空的 – GaaRa 2012-02-28 16:52:13

1

创建一个名为IsSelected中包含的ObservableCollection内的对象属性。将此绑定到ListBoxItemIsSelected属性通过TwoWay绑定。

然后,在页面的OnLoaded回调(或任何你要绑定的集合到ListBox),这样做

foreach(var obj in myCollection) { 
    obj.IsSelected = false; 
} 
if(myCollection.Count > 0) { 
    myCollection[0].IsSelected = true; 
} 
// bind the collection to the listbox 
相关问题