ArguementOutOfRangeException 未处理 c# wpf

ArguementOutOfRangeException was unhandled c# wpf

在 WPF 应用程序中,我有一些单选按钮和一个列表框。当按下特定的单选按钮时,列表框显示来自名为 'staff' 的可观察集合中的对象。我有一个 selectionChanged 事件方法,用于在列表框中的项目被 selected 时向文本块显示信息。当我 select 单选按钮时,正确的项目被添加到集合中并显示在列表框中,但是如果我 select 列表框中的一个项目然后 select 一个不同的单选按钮。

总而言之,在 select 输入列表框项目然后 select 使用不同的单选按钮后尝试访问集合时出现错误。

下面事件方法中代码的第二行出现错误;

private void lbxDisplay_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        int itemNumber = lbxDisplay.SelectedIndex;
        string itemString = staff[itemNumber].ToString(); 

当您将 selection 从一个 RadioButton 更改为另一个时,ListBox 的内容会被清除,这会导致 SelectionChanged 事件被解雇,当 select 没有任何内容时,SelectedIndex 变为 -1。然后,在您的 lbxDisplay_SelectionChanged 方法中,您尝试检索 staff[-1].