En C# Windows Form Application; ¿Hay un controlador de eventos para el control ListView que se activa cuando se agregan elementos a los elementos de la vista de lista?Añadir controlador de eventos para ListView Items_added
Respuesta
Lo haría see here o here. Son más o menos la misma respuesta, simplemente escrita en estilos muy diferentes. Versión corta, agregue evento ItemAdded a ListViewItemCollection.
¡RTFM ni siquiera es una respuesta! – AHH
@AHH - Especialmente cuando el FM no menciona nada como una respuesta a este OP. :) (A menos que esté buscando en una versión de .NET más allá de 4.0?) Cada respuesta funcional que he encontrado en cualquier lugar implica extender The Forms ListView para agregar esta característica. El enlace ** ver aquí ** está hablando de WPF, y el enlace ** aquí ** es otra extensión de la solución ListView. –
El marco no no define un evento como ItemAdded
. Sin embargo, asegúrese de visitar esta solución alternativa: An Observer Pattern and an Extended ListView Event Model. Por ejemplo, los siguientes eventos se definen allí:
public event ListViewItemDelegate ItemAdded;
public event ListViewItemRangeDelegate ItemRangeAdded;
public event ListViewRemoveDelegate ItemRemoved;
public event ListViewRemoveAtDelegate ItemRemovedAt;
No hay ningún evento que lo haga. Pero siempre se puede crear su propio cuadro de lista:
public class MyListView : ListView
{
public void AddItem(ListViewItem item)
{
Items.Add(item);
if (ItemAdded != null)
ItemAdded.Invoke(this, new ItemsAddedArgs(item));
}
public EventHandler<ItemsAddedArgs> ItemAdded;
}
public class ItemsAddedArgs : EventArgs
{
public ItemsAddedArgs(ListViewItem item)
{
Item = item;
}
public object Item { get; set; }
}
Otra alternativa es mantener los elementos en una instancia de la clase ObservableCollection, establecer ListView.ItemsSource a esa colección y suscribirse al evento ObservableCollection.CollectionChanged.
Lamentablemente, 'Forms ListView' no tiene' ItemsSource'. Esa es una mejora 'WPF'. –
¡No es necesario editar otra fuente!
Ok: el cambio de ListView a MyListView
hacelargo tiempo - pero busco a una solución sin implementos con propia ItemAdd funciones! La mejor manera de hacerlo ... use la función WndProc.
mensaje: LVM_INSERTITEM
http://msdn.microsoft.com/en-us/library/windows/desktop/bb761107%28v=vs.85%29.aspx
//COMMCTRL.H
#define LVM_FIRST 0x1000 // ListView messages
#define LVM_INSERTITEMA (LVM_FIRST + 7)
#define LVM_INSERTITEMW (LVM_FIRST + 77)
//edit itemremove (LVM_DELETEITEM)
#define LVM_DELETEITEM (LVM_FIRST + 8)
C# -aplicación
class myListView : ListView {
protected override void WndProc(ref Message m){
base.WndProc(ref m);
switch (m.Msg){
case 0x1007: //ListViewItemAdd-A
System.Diagnostics.Debug.WriteLine("Item added (A)");
break;
case 0x104D: //ListViewItemAdd-W
System.Diagnostics.Debug.WriteLine("Item added (W)");
break;
//edit for itemremove
case 0x1008:
System.Diagnostics.Debug.WriteLine("Item removed");
break;
case 0x1009:
System.Diagnostics.Debug.WriteLine("Item removed (All)");
break;
default:
break;
}
}
}
ya se puede despedir a su propia ItemAddedEvent. Espero que eso ayude a otras personas que tienen el mismo problema.
gegards raiserle
(edit: por favor voten;))
Gracias por compartir esta información, ¿puedo preguntar cuál es el mensaje o caso de eliminación del artículo? – NetInfo
http://msdn.microsoft.com/en-us/library/windows/desktop/bb774895%28v=vs.85%29.aspx vistazo a mi post: D – raiserle
Muchas gracias, usted es una leyenda , Dios bendiga. – NetInfo
- 1. añadir un controlador de eventos
- 2. Scala oscilación de ListView/Añadir Elementos Eventos
- 3. CKEditor añadir controlador de eventos al elemento de diálogo
- 4. Añadir eventos para antes/después de una acción de un controlador en Magento
- 5. Añadir controlador de eventos para body.onload por javascript dentro de <body> parte
- 6. Añadir múltiples eventos window.onload
- 7. añadir eventos a Rafael elementos
- 8. toca el controlador de eventos para UIImageView
- 9. Controlador de eventos en DataTemplate
- 10. Cancelar onbeforeunload controlador de eventos?
- 11. Android controlador de mensajes y ListView
- 12. VB.NET 2005 - Controlador de eventos "global"?
- 13. Implementación de un único controlador de eventos para controles múltiples con diferentes delegados controladores de eventos
- 14. Delphi: cómo asignar dinámicamente un controlador de eventos sin sobrescribir el controlador de eventos existente?
- 15. Adición de controlador de eventos en main() para SerialPort
- 16. Controlador de eventos de almacenamiento HTML5/JS
- 17. Controlador de eventos no activado para controles creados dinámicamente
- 18. Adjuntar controlador de eventos con controlador nuevo vs Asignarlo directamente
- 19. Controlador de eventos y pérdidas de memoria
- 20. Orden de controlador de eventos de Javascript
- 21. Controlador de eventos dinámicamente establecido usando DataTrigger
- 22. ¿Hay eventos antes de ejecutar un controlador?
- 23. Teclee la tecla presionó controlador de eventos
- 24. C# eliminación de un controlador de eventos
- 25. ejecución Prevenir de controlador de eventos padre
- 26. JavaScript argumentos de controlador de eventos
- 27. Controlador de eventos de Jquery multiselección
- 28. Eliminación de controlador de eventos anónimo
- 29. Cómo quitar un controlador de eventos lambda
- 30. ¿Debo eliminar un controlador de eventos?
posible duplicado de [ListView elemento añadido de evento] (http://stackoverflow.com/questions/2024401/listview-item-added-event) –