列表框.SelectedItem拒绝设置

本文关键字:设置 拒绝 SelectedItem 列表 | 更新日期: 2023-09-27 18:07:10

下面代码中抛出异常的可能原因是什么?

var oldItem = this.MyListBox.SelectedItem;
if (this.MyListBox.Items.Contains(newItem))
{
    this.MyListBox.SelectedItem = newItem;
    if (this.MyListBox.SelectedItem != newItem && this.MyListBox.SelectedItem == oldItem) 
        throw new ApplicationException("WTF?");
}

在任何点都不是ListBox。引发SelectionChanged事件。

EDIT: oldItem和newItem是相同类型的简单业务对象。

列表框.SelectedItem拒绝设置

您需要像这样使用SetSelected方法:

MyListBox.SetSelected(index, true);

或者像这样设置在条目本身上:

MyListBox.Items(index).Selected = true;

我不确定你的问题中newItem是什么,所以你需要在列表中识别它的索引,并将其放在上面代码片段中我有index的地方。