Почему SelectedIndex не обновляется в WPF ComboBox при наличии дублирующихся записей? - PullRequest
0 голосов
/ 25 октября 2011

Я использую шаблон MVVM для привязки значения ComboBox SelectedIndex к типу int в модели представления:

<ComboBox ItemsSource="{Binding DropdownListChoices}" Margin="5,2,5,1" Width="320" Height="23"
 Style="{StaticResource comboBoxWithErrorHandling}" SelectedIndex="{Binding SelectedComboBoxIndex}">

Посмотреть модель:

public class FieldViewModel : ObservableObject, IDataErrorInfo
{
    private int _selectedComboBoxIndex;

    public int SelectedComboBoxIndex
    {    
        get { return _selectedComboBoxIndex; }
        set
        {
            if (_selectedComboBoxIndex != value)
            {
                _selectedComboBoxIndex = value;
                RaisePropertyChanged("SelectedComboBoxIndex");
            }
        }
    }   

    // ...  
}

В другой части кода я заполняю DropdownListChoices. Скажем, элементы, например, A, B, C, A, D. Правильный выбор B, C или D заставляет SelectedComboBoxIndex получить ожидаемое значение (1, 2 или 4 соответственно). Но выбор A установит для SelectedComboBoxIndex значение 0 независимо от того, был выбран первый или второй A. При выборе второго A, я ожидаю, что выбранный индекс будет 3.

Почему это происходит? Есть ли другой способ достижения того, что я пытаюсь сделать, а именно получить абсолютный индекс списка, который был выбран?

1 Ответ

2 голосов
/ 25 октября 2011

Вы никогда не должны иметь дубликаты элементов в элементах управления селектором, это только запутает их и вызовет аномалии, если у вас есть примитивные значения, оберните их в классе.

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