当有重复条目时,为什么不更新WPF组合框上的selecteindex ?
本文关键字:组合 WPF selecteindex 更新 为什么不 | 更新日期: 2023-09-27 18:12:25
我正在使用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。在选择第二个A时,我希望选择的索引是3。
为什么会发生这种情况?有没有别的方法来实现我想要的,也就是得到被选中的绝对列表索引?
你不应该在选择器控件中有重复的项,如果你有原始值将它们包装在一个类中,它只会混淆它们并导致异常。