我在WPF中创建了一个带有ItemSource
的ListBox,以及使UI刷新它的所有类和事件。但我的Remove
方法存在问题:
Public Sub Remove(ItemIndex As Integer)
MyList.RemoveAt(ItemIndex)
RaiseEvent CollectionChanged(Me, New NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, MyList(ItemIndex)))
End Sub
但是当我执行此操作时,我收到一条消息,指示索引(在这种情况下为ItemIndex
)超出范围。但是在输出窗口中它表示索引为'0'(否则它将从MyList
中删除该项目。)
答案 0 :(得分:0)
问题解决了!我改变了代码
Public Sub Remove(ItemIndex As Integer)
MyList.RemoveAt(ItemIndex)
RaiseEvent CollectionChanged(Me, New NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, MyList(ItemIndex)))
End Sub
到
Public Sub Remove(ItemIndex As Integer)
RaiseEvent CollectionChanged(Me, New NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, MyList(ItemIndex), ItemIndex))
MyList.RemoveAt(ItemIndex)
End Sub
就是这样。