Gewusst wie: Abrufen eines ComboBoxItem

Wenn Sie ein ComboBox-Element an eine Datenquelle binden, müssen Sie oft zum ComboBoxItem-Element gelangen, um eine bestimmte Aktion auszuführen. Sie können das ComboBoxItem abrufen, indem Sie einen ItemContainerGenerator verwenden. Im folgenden Beispiel wird ein ComboBox gezeigt, das an eine Datenquelle mit dem Namen myCities gebunden ist.

Beispiel

<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>

Sie können das ComboBoxItem abrufen, indem Sie die ItemContainerGenerator.ContainerFromIndex-Methode verwenden und den Index des gewünschten Elements angeben. Im folgenden Beispiel wird das ComboBoxItem abgerufen und dazu der Index des Elements angegeben und dann das Element im ComboBox ausgewählt.

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

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

In manchen Fällen verfügen Sie über das Objekt des Elements in der Datenquelle, kennen aber nicht den Index. In diesem Fall können Sie die ItemContainerGenerator.ContainerFromItem-Methode verwenden, um das ComboBoxItem abzurufen. Im folgenden Beispiel wird das ComboBoxItem abgerufen und dazu das Objekt in der Auflistung angegeben und dann das Element im ComboBox ausgewählt.

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

cbi.IsSelected = true;

Siehe auch

Aufgaben

Gewusst wie: Abrufen eines ListBoxItem

Konzepte

Übersicht über Datenbindung