0

以下代码中引发异常的可能原因是什么?

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 事件。

编辑: oldItem 和 newItem 是相同类型的简单业务对象。它们不为空。

4

1 回答 1

0

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

MyListBox.SetSelected(index, true);

或将其设置在项目本身上,如下所示:

MyListBox.Items(index).Selected = true;

我不确定newItem您的问题是什么,因此您需要在列表中识别它的索引,并将其放在我index在上述代码段中的位置。

于 2013-04-03T14:57:33.613 回答