방법: ComboBoxItem 가져오기

업데이트: 2007년 11월

ComboBox를 데이터 소스에 바인딩할 때는 ComboBoxItem에 액세스하여 특정 작업을 수행해야 하는 경우가 많습니다. ItemContainerGenerator를 사용하여 ComboBoxItem을 가져올 수 있습니다. 다음 예제에서는 myCities라는 데이터 소스에 바인딩된 ComboBox를 보여 줍니다.

예제

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

ItemContainerGenerator.ContainerFromIndex 메서드를 사용하고 원하는 항목의 인덱스를 지정하여 ComboBoxItem을 가져올 수 있습니다. 다음 예제에서는 항목의 인덱스를 지정한 다음 ComboBox에서 해당 항목을 선택하여 ComboBoxItem을 가져옵니다.

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

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

데이터 소스에 항목의 개체가 있지만 해당 인덱스를 모르는 경우가 있습니다. 이러한 경우 ItemContainerGenerator.ContainerFromItem 메서드를 사용하여 ComboBoxItem을 가져올 수 있습니다. 다음 예제에서는 컬렉션의 개체를 지정한 다음 ComboBox에서 해당 항목을 선택하여 ComboBoxItem을 가져옵니다.

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

cbi.IsSelected = true;

참고 항목

작업

방법: ListBoxItem 가져오기

개념

데이터 바인딩 개요