Tengo BindingList (T) que estoy mostrando en un DataGrid. Estoy viendo ListChanged eventos y realizando diferentes acciones cuando se evoca el evento ListChanged.¿Qué causa un evento ListChangedType.ItemMoved ListChange en una BindingList <T>?
Estoy revisando el ListChangeType argumento del evento para comprobar cómo se modificó la lista, y luego responder en consecuencia. Sin embargo, me di cuenta de que hay ListChanged tipo de evento ItemMoved.
Tengo botones para "Mover hacia arriba" y "Mover hacia abajo" para mover los elementos hacia arriba y hacia abajo en la lista. Pero estos en realidad están eliminando el elemento seleccionado y luego reinsertándolo en una posición más alta o más baja. Sin embargo, no veo ningún método de BindingList (T) que parece que movería un elemento de la lista. Entonces, ¿me estoy perdiendo algo o simplemente no hay forma de mover un elemento en un BindingList que también evoca un evento ItemMoved tipo ListChanged?
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
}
}
Los puntos principales parecen correctos, solo pensé que debería señalar que mover un elemento a un índice más bajo no funcionará con este código: el this.Remove (item) cambiará los índices. Por lo menos, inserte el elemento una sola vez; en el peor, intente insertar más allá del final de la lista. – Yoopergeek