以编程方式选择下一个列表框项

int*_*tmw 4 c# listbox selectedindex

我正在尝试编程两个按钮来模仿向上/向下箭头键行为,这意味着当我按下按钮向上时,它会向上移动我的列表框中的一个项目,依此类推.我写了以下代码:

private void mainlistup(object sender, System.Windows.RoutedEventArgs e)
{
    if (listBox_Copy.SelectedIndex != -1 &&
        listBox_Copy.SelectedIndex < listBox_Copy.Items.Count &&
        listBox_Copy.SelectedIndex !=1)
    {
        listBox_Copy.SelectedIndex = listBox_Copy.SelectedIndex - 1;
    }
}

private void mainlistdown(object sender, System.Windows.RoutedEventArgs e)
{
    if (listBox_Copy.SelectedIndex < listBox_Copy.Items.Count &&
       listBox_Copy.SelectedIndex != -1)
    {
        listBox_Copy.SelectedIndex = listBox_Copy.SelectedIndex + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当按下该按钮时,该项目将失去其选择...正确设置选择索引(其他数据绑定项目,绑定到所选项目显示正确的值)但列表框项目不再突出显示.如何将所选项目设置为突出显示?

djd*_*d87 5

您的ListBox可能刚刚失去焦点.设置完成后,请执行以下操作SelectedIndex:

listBox_Copy.Focus();
Run Code Online (Sandbox Code Playgroud)