Hallo,
ich habe mir eine eigene Listview gebaut.
Ich müsste in der Methode
protected override void WndProc(ref Message msg)
herrausfinden ob das Item mittels Add oder AddRange eingefügt wurden. In beiden Fällen wird die Methode WndProc pro Item aufgerufen egal ob Add oder AddRange. Da ich unterschiedliche Behandlungen durchführen muss muss ich einen Unterschied erkennen ob das Item mittes Add oder AddRange eingefügt wurde.
Grüße und danke
Hallo neo,
warum musst du einen Unterschied erkennen?
Und warum verwendest du keine eigene Add und AddRange-Methode, die z.B. in einer bool-Methode vermerken, welche der beiden Methoden (zuletzt) aufgerufen wurde.
herbivore
Wenn du mit Add bzw. AddRange ein Objekt der Liste hinzufügst, kannst du doch einfach eine weitere Variable mit in das Objekt legen. So weist du das später an jeder beliebigen Stelle wie du das Objekt hinzugefügt hast.
Hallo,
ich könnte mir grundsätzlich natürlich noch eine Eigenschaft bauen, dass ist richtig. Müsste aber bei jedem Aufruf diese Eigenschaft vorher füllen. Da ich an dem Projekt nicht jede Stelle ansteuern will um die Änderung einzufügen, hatte ich mir gedacht, dass ich in der WndProc Methode prüfe durch was die Items eingefügt werden.
Grüße
Hallo neo,
Müsste aber bei jedem Aufruf diese Eigenschaft vorher füllen.
nicht wenn du es so machst, wie ich vorgeschlagen hast, zumindest nicht explizit. Du musst dann nur die Aufrufe austauschen. Das musst du noch nicht mal manuell machen, sondern könntest das mit einem AOP-Tool (z.B. PostSharp) tun. Dann kannst du auch keinen Aufruf übersehen.
Du hast noch nicht geschrieben, warum, du einen Unterschied erkennen musst. Ich denke, es macht vom Ergebnis her keinen Unterschied, ob in einem bestimmten Code-Block drei mal direkt hintereinander Add oder einmal AddRange mit drei Elementen aufgerufen wird. Wenn es aber darum geht, dass der Benutzer eine jeweils andere Operation angestoßen hat, reicht es, sich auf oberster Ebene (also beim Einstig in den entsprechenden EventHandler) per boolscher Variable zu merken, um welche Benutzeraktion es sich handelt.
herbivore