Como: Get a ComboBoxItem

Quando você liga um ComboBox com uma fonte de dados, você com frequência precisa obter o ComboBoxItem para realizar uma certa ação. Você pode obter o ComboBoxItem utilizando um ItemContainerGenerator. O exemplo a seguir mostra um ComboBox ligado a uma fonte de dados chamada myCities.

Exemplo

<ComboBox Name="cb" Margin="10,10,3,3" Width="200" Height="30" Grid.Column="0" Grid.Row="2"         
          ItemsSource="{StaticResource myCities}" Text="My Cities"
          IsEditable="true"  IsReadOnly="true" 
          IsDropDownOpen="True" StaysOpenOnEdit="True">
</ComboBox>

Você pode obter o ComboBoxItem utilizando o método ItemContainerGenerator.ContainerFromIndex e especificando o índice do item que você quer. O exemplo a seguir obtém o ComboBoxItem especificando o índice do item e então seleciona esse item no ComboBox.

private void GetComboBoxItem(int index)
{
    ComboBoxItem cbi = (ComboBoxItem)
         (cb.ItemContainerGenerator.ContainerFromIndex(index));

    cbi.IsSelected = true;
    Info.Content = "I visited " +
         (cbi.Content.ToString()) + ".";
}

Às vezes você terá o objeto do item na fonte de dados mas não saberá seu índice. Nesse caso, você pode utilizar o método ItemContainerGenerator.ContainerFromItem para obter o ComboBoxItem. O exemplo a seguir obtém o ComboBoxItem especificando o objeto na coleção e então seleciona esse item no ComboBox.

ComboBoxItem cbi = (ComboBoxItem)
    cb.ItemContainerGenerator.ContainerFromItem(objectInCollection);

cbi.IsSelected = true;

Consulte também

Tarefas

Como: Obter um ListBoxItem

Conceitos

Revisão de Associação de Dados