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;