Mam BindingList (T), który wyświetlany jest w DataGrid. Oglądam zdarzenia ListChanged i wykonuję różne akcje po wywołaniu zdarzenia ListChanged.Co powoduje wydarzenie ListChangedType.ItemMoved ListChange w bibliotece BindingList <T>?
Sprawdzam argument ListChangeType zdarzenia, aby sprawdzić, w jaki sposób lista została zmieniona, a następnie odpowiednio zareagować. Zauważyłem jednak, że istnieje typ zdarzenia ListChangedItemMoved.
Mam przyciski "Przenieś w górę" i "Przenieś w dół", aby przenieść elementy w górę iw dół listy. Ale to faktycznie usuwa wybrany element, a następnie umieszcza go na wyższej lub niższej pozycji.
Jednak nie widzę żadnej metody z BindingList (T), która wygląda tak, jakby przenieść element na liście. Czy też coś mi brakuje lub czy po prostu nie ma możliwości przeniesienia elementu do listy BindingList, która wywołałaby również zdarzenie ListChanged typu ItemMoved?
void FloorCollection_ListChanged(object sender, ListChangedEventArgs e)
{
if (e.ListChangedType == ListChangedType.ItemAdded)
{
//DO STUFF
}
else if (e.ListChangedType == ListChangedType.ItemDeleted)
{
//DO STUFF
}
else if (e.ListChangedType == ListChangedType.ItemMoved)
{
//HOW DO I GET THIS CODE TO RUN?
}
else if (e.ListChangedType == ListChangedType.ItemChanged)
{
//DO STUFF
}
}
Główne punkty wyglądają poprawnie, po prostu myślę, że powinienem wskazać, że przeniesienie elementu do niższego indeksu nie zadziała z tym kodem - to.Rozpocznij (element) spowoduje przesunięcie indeksów. Przynajmniej wstawiasz przedmiot jednorazowo, w najgorszym wypadku próbujesz wstawić za koniec listy. – Yoopergeek