C# 停止按钮,导致列表框取消选择

C# 停止按钮,导致列表框取消选择,c#,wpf,button,listbox,C#,Wpf,Button,Listbox,我有一个按钮,当我点击它时,它会从名为listBoxNames的ListBox中删除选中的ListItem,并从名为people的列表中删除选中的Person对象 但是,单击“删除”按钮后,会弹出一条错误消息,告诉我索引超出范围。这使我相信,单击按钮后,它已取消选择了ListBox,因此listBoxNames.SelectedIndex返回-1 这是真的吗?还是我犯了什么愚蠢的错误 private void deleteEntryBtn_Click(object sender, RoutedE

我有一个按钮,当我点击它时,它会从名为
listBoxNames
ListBox
中删除选中的
ListItem
,并从名为
people
的列表中删除选中的
Person
对象

但是,单击“删除”按钮后,会弹出一条错误消息,告诉我索引超出范围。这使我相信,单击按钮后,它已取消选择了
ListBox
,因此
listBoxNames.SelectedIndex
返回-1

这是真的吗?还是我犯了什么愚蠢的错误

private void deleteEntryBtn_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            listBoxNames.Items.Remove(listBoxNames.SelectedItems[0]);
            people.RemoveAt(listBoxNames.SelectedIndex);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

您的代码将删除所选项目。
一旦该项不存在,就没有选择

在删除项目之前,您需要检查所选项目。

请尝试以下操作:

private void deleteEntryBtn_Click(object sender, RoutedEventArgs e)
{
    try
    {
        people.RemoveAt(listBoxNames.SelectedIndex);
        listBoxNames.RemoveAt(listBoxNames.SelectedIndex);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
掌心-颠倒代码的顺序就足够了。