Pergunta

É possível mudar o selecionado ListBoxItem De código-behind na Fundação de Apresentação do Windows?

É realmente uma tarefa bastante simples, eu tenho um Next e Previous botão e eles representam o próximo e o item anterior no ListBox. Mas, myListBox.items é claro que são representações de objetos do que eu armazenei no ListBox.

Então, como se buscaria o ListBoxItem Para definir o IsSelected propriedade?

Foi útil?

Solução

Provavelmente, a coisa mais fácil de fazer no seu caso, pois você está fazendo anterior e o próximo é apenas incrementar o selecionado Index:

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

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

Se você verdade Deseja obter o ListBoxItem que compõe um objeto que você jogou na sua caixa de listagem, você pode fazer:

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

Outras dicas

Você tem várias opções:

  • Use a propriedade SelectedItem ou SelectedIndex do controle da caixa de listagem
  • Se você possui o ListBoxItem e não a caixa de listagem pai, use o itemsControl.iTemSControlFromItemContainer (ListBoxItem) para recuperar a caixa de listagem pai (e usar as propriedades anteriores)
  • Use as interfaces ICOLLECTIONVIEW (ColectionViewSource.getDefaultView) e seus métodos (MoveCurrentTonext, MoveCurrentToprevious)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top