Поделиться через


Практическое руководство. Получение элемента ComboBoxItem

Обновлен: Ноябрь 2007

При привязке элемента управления ComboBox к источнику данных часто требуется получить элемент ComboBoxItem для выполнения определенных действий. Элемент ComboBoxItem можно получить с помощью класса ItemContainerGenerator. В следующем примере показан элемент управления ComboBox, привязанный к источнику данных myCities.

Пример

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

Элемент ComboBoxItem можно получить с помощью метода ItemContainerGenerator.ContainerFromIndex, указав индекс требуемого элемента. В следующем примере показано, как получить элемент ComboBoxItem с заданным индексом и затем выбрать его в элементе управления ComboBox.

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

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

Бывают случаи, когда известен не индекс элемента в источнике данных, а объект, связанный с этим элементом. В таком случае для получения элемента ComboBoxItem можно использовать метод ItemContainerGenerator.ContainerFromItem. В следующем примере показано, как получить элемент ComboBoxItem указанного объекта в коллекции и затем выбрать его в элементе управления ComboBox.

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

cbi.IsSelected = true;

См. также

Задачи

Практическое руководство. Получение элемента ListBoxItem

Основные понятия

Общие сведения о связывании данных