使用SelectedIndex设置组合框默认值

时间:2011-09-05 14:01:59

标签: c# wpf

为什么每当我尝试将SlectedIndex设为0时,它总是保持-1?

public partial class Window1 : Window
{
    private ObservableCollection<string> _dropDownValues = new ObservableCollection<string>();
    public ObservableCollection<string> DropDownValues
    {
        get { return _dropDownValues; }
        set { _dropDownValues = value; }
    }

    private string _selectedValue;
    public string SelectedValue
    {
        get { return _selectedValue; }
        set { _selectedValue = value; }
    }

    public Window1()
    {
        InitializeComponent();
        DataContext = this;

        DropDownValues.Add("item1");
        DropDownValues.Add("item2");
        DropDownValues.Add("item3");
        DropDownValues.Add("item4");
        DropDownValues.Add("item5");
        DropDownValues.Add("item6");

        if (combotest.SelectedIndex == -1)
        {
            combotest.SelectedIndex = 0;
        }
    }
}

<StackPanel HorizontalAlignment="Left" Margin="10">
        <ComboBox Name="combotest"
            Margin="0 0 0 5"
            ItemsSource="{Binding DropDownValues}"
            SelectedValue="{Binding SelectedValue}"        
            Width="150"/>     
    </StackPanel>

2 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我,但你没有在你的XAML中设置SelectedValuePath。此外,设置SelectedValuePath后,您只需设置默认SelectedValue(与商品来源中第一项的value属性相同),而无需使用SelectedIndex代码。< / p>

如果有帮助,请告诉我。

答案 1 :(得分:1)

尝试此操作而不是设置索引。

string s = DropDownValues[0];
SelectedItem = s;