Я использую шаблон 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.
Почему это происходит? Есть ли другой способ достижения того, что я пытаюсь сделать, а именно получить абсолютный индекс списка, который был выбран?