2013-06-01 95 views
0

我在WPF中用ItemSource和所有那些讓UI刷新它的類和事件創建了一個ListBox。但是有一個問題,我Remove方法:VB.NET索引'0'超出範圍?

Public Sub Remove(ItemIndex As Integer)
MyList.RemoveAt(ItemIndex)
RaiseEvent CollectionChanged(Me, New NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, MyList(ItemIndex)))
End Sub

但是,當我執行此我得到一個消息,該指數(在這種情況下ItemIndex)超出範圍。但在輸出窗口中,它表示索引爲'0'(否則它將從MyList中刪除該項目)。

+1

好吧,如果列表中沒有項目,索引'0'(索引第一項)將超出界限。 – Oded

+0

爲什麼你需要以編程方式提高事件? – peterG

回答

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

這就是全部。