Alterar programaticamente ListBoxItem selecionado
-
10-07-2019 - |
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?
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