2009-10-29 99 views
1

是否可以在Windows Presentation Foundation中将所选的ListBoxItem从Code-Behind中更改?以编程方式更改所选ListBoxItem

这真的很简单,我有一个NextPrevious按钮,它们代表ListBox中的下一个和上一个项目。但是,myListBox.items当然是我存储在ListBox中的对象表示。

那么,如何获取ListBoxItem来设置IsSelected属性?

回答

5

也许更容易的事情,你的情况做,因为你正在做一个和下一个刚刚递增的SelectedIndex:

//Increment 
if(myListBox.SelectedIndex < myListBox.Items.Count -1) 
    myListBox.SelectedIndex++; 

//Decrement 
if(myListBox.SelectedIndex > 0) 
    myListBox.SelectedIndex--; 

如果你真的想,构成了你抛出的对象ListBoxItem中在你的列表框中,你可以这样做:

ListBoxItem item = myListBox.ItemContainerGenerator.ContainerFromItem(objectIWantToSelect); 
item.IsSelected = true; 
1

你有多种选择:

  • 使用ListBox控件的的SelectedItem或SelectedIndex属性
  • 如果你有ListBoxItem的,而不是父列表框,使用ItemsControl.ItemsControlFromItemContainer(ListBoxItem的)来检索父列表框(与使用先前的属性)
  • 使用的ICollectionView的接口(CollectionViewSource.GetDefaultView)和它的方法(MoveCurrentToNext,MoveCurrentToPrevious)
+0

不知道你为什么得到一个downvote。你的答案在技术上是正确的。我upvoted补偿:) – 2009-10-29 17:10:02

+0

不知道......谢谢你:-) – japf 2009-10-29 18:34:53