ComboBox представляет выпадающий список. Каждый элемент этого списка является объектом ComboBoxItems:
<ComboBox> <ComboBoxItem>Windows Phone 8.1</ComboBoxItem> <ComboBoxItem>Android 5.0 Lollipop</ComboBoxItem> <ComboBoxItem>iOS 8</ComboBoxItem> </ComboBox>
Обрабатывая событие SelectionChanged
, мы можем динамически получать выделенный элемент:
<StackPanel> <ComboBox PlaceholderText="Выбрать платформу" SelectionChanged="ComboBox_Selected"> <!-- остальное содержимое списка--> </ComboBox> <TextBlock x:Name="textBlock1" FontSize="26" /> </StackPanel>
Обработка события в коде C#:
private void ComboBox_Selected(object sender, RoutedEventArgs e) { ComboBox comboBox = (ComboBox)sender; ComboBoxItem selectedItem = (ComboBoxItem)comboBox.SelectedItem; textBlock1.Text=selectedItem.Content.ToString(); }
В предыдущем примере ComboBoxItem содержал текст, однако так как это элемент управления содержимым, то он может включать в себя и другие элементы. Например:
<ComboBox> <ComboBoxItem IsSelected="True"> <StackPanel Orientation="Horizontal"> <Image Source="cat.jpg" Width="60" /> <TextBlock Margin="10">Кот</TextBlock> </StackPanel> </ComboBoxItem> <StackPanel Orientation="Horizontal"> <Image Source="flowers.jpg" Width="60" /> <TextBlock Margin="10">Цветы</TextBlock> </StackPanel> <StackPanel Orientation="Horizontal"> <Image Source="dubi.jpg" Width="60" /> <TextBlock Margin="10">Зима</TextBlock> </StackPanel> </ComboBox>
Для создания первого элемента использовался элемент ComboBoxItem. Для второго и третьего такие элементы создаются неявно. Однако использование
ComboBoxItem имеет преимущество, так как мы можем выделить данный элемент, установив свойство IsSelected="True"
, либо можем сделать
недоступным с помощью установки свойства IsEnabled="False"
.