0
在以下代码中抛出异常的可能原因是什么?ListBox.SelectedItem拒绝设置
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是相同类型的简单业务对象。它们不是null。
@Matt你的newItem是什么 - 你是如何发起它的? – Alex
这是在执行什么? – Clint
多线程是最明显的猜测 - 其他线程修改选定的项目,而你的线程通过条件 –