Установка значения по умолчанию для выпадающего списка с помощью SelectedIndex - PullRequest
0 голосов
/ 05 сентября 2011

Почему, когда я пытаюсь установить 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 ]

1 голос
/ 05 сентября 2011

Попробуйте вместо установки индекса.

string s = DropDownValues[0];
SelectedItem = s;
1 голос
/ 05 сентября 2011

Пожалуйста, исправьте меня, если я ошибаюсь, но вы не установили SelectedValuePath в своем XAML. Также после того, как вы установите SelectedValuePath, вам нужно будет установить только значение по умолчанию SelectedValue (то же самое, что значение свойства первого элемента из вашего источника элементов), и ваш код SelectedIndex не будет нужен.

Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...