如何自动和编程选择组合框项目?

时间:2015-08-24 16:18:18

标签: c# wpf

我有一组组合框,一旦每个组合框都填充了项目,我希望自动选择第一个项目。所以我这样做:

all_transition_boxes[slide_item].SelectedItem = all_transition_boxes[slide_item].Items[0];

但后来如果我想选择其他项目,我就不能再改变索引了。似乎索引永久设置为零。我尝试使用SelectedItem而不是SelectedIndex,但它根本不起作用。我将不胜感激任何帮助。

  //populate each combobox with corresponding elements
                for (int i = 0; i < slide_transitions.Count; i++)
                {
                    all_transition_boxes[slide_item].Items.Add("Transition " + (i + 1));


                }


all_transition_boxes[slide_item].SelectedItem = all_transition_boxes[slide_item].Items[0];

2 个答案:

答案 0 :(得分:1)

我创建了一个示例代码来复制您的问题,请检查一下。

带有组合框和两个按钮的表单:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525" Activated="Window_Activated">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="329*"/>
            <ColumnDefinition Width="34*"/>
            <ColumnDefinition Width="154*"/>
        </Grid.ColumnDefinitions>
        <ComboBox x:Name="comboBox" HorizontalAlignment="Left" Margin="146,78,0,0" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="101,185,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/>
        <Button x:Name="button1" Content="Button" HorizontalAlignment="Left" Margin="266,185,0,0" VerticalAlignment="Top" Width="75" Grid.ColumnSpan="2" Click="button1_Click"/>
    </Grid>
</Window>

表格的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Activated(object sender, EventArgs e)
        {
            var items = new List<string>();

            for (var i = 0; i < 10; i++)
            {
                items.Add("Item" + i);
            }

            comboBox.ItemsSource = items;
            comboBox.SelectedItem = "Item0";
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            comboBox.SelectedItem = "Item5";
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            comboBox.SelectedItem = "Item9";
        }
    }
}

答案 1 :(得分:0)

[yourSearchController.searchBar resignFirstResponder]; (在XAML中)设置:

ComboBox

您可以将其设置为应用于数组中SelectedIndex = "0" 的所有实例的样式的setter。