vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Problem bei Events in Collection 
Autor: keco
Datum: 01.10.08 11:41

Hallo,

ich habe ein Problem, was ich einfach nicht nachvollziehen kann. Ich habe eine Collection gebastelt, die Daten vom Typ myObj aufnimmt. In einem UserControl werden die in der Collection befindlichen Objekte in geeigneter Form angezeigt. Allerdings möchte ich das UserControl refreshen, wenn eine Eigenschaft eines Objektes in der Collection geändert wurde. Aber das bekomme ich einfach nciht hin.
Mein Collection sieht dazu so aus (gekürzt):
Public Class MyObjCollection
   Implements IList(Of MyObj)
   Implements System.ComponentModel.INotifyPropertyChanged
 
   Private iList As New List(Of MyObj)
 
   Public Event ListChanged(ByVal sender As Object, ByVal e As _
     System.ComponentModel.PropertyChangedEventArgs) Implements _
     System.ComponentModel.INotifyPropertyChanged.PropertyChanged
   Public Event MyObjChanged()
 
   Public Sub Add(ByVal item As MyObj) Implements _
     System.Collections.Generic.ICollection(Of Units.Creature).Add
      AddHandler item.MyObjChanged, AddressOf MyObj_Changed
      iList.Add(item)
 
      RaiseEvent ListChanged(Me, New _
        System.ComponentModel.PropertyChangedEventArgs("Add"))
   End Sub
 
   Public Sub AddRange(ByVal collection As _
     System.Collections.Generic.IEnumerable(Of MyObj))
      For Each item As MyObj In collection
         AddHandler item.MyObjChanged, AddressOf MyObj_Changed
         iList.Add(item)
      Next
 
      RaiseEvent ListChanged(Me, New _
        System.ComponentModel.PropertyChangedEventArgs("AddRange"))
   End Sub
 
   Private Sub MyObj_Changed()
      RaiseEvent MyObjChanged()
   End Sub
End Class
Im ganzen Projekt gibt es eine Auflistung der Objekte in einer List(Of MyObj). Beim Aufruf von Form2 wird diese Liste als Array (liste.ToArray) übergeben und zu der MyObjCollection im UserControl hinzugefügt. Eigentlich müsste doch bei einer Änderung das Event MyObjChanged ausgelöst werden? Im UserControl reagiere ich auch auf das Event, aber irgendwie wird die Methode nicht aufgerufen. Wenn ich aber beispielsweise eine Instanz von MyObj erstelle und etwas verändere, dann wird das MyObjChanged-Event in der Klasse aufgerufen, also kann ich darauf reagieren. Aber irgendwie geht das nicht mehr mit der Collection? Ich hoffe mir kann dabei jemand helfen, da ich das Problem unbedingt lösen muss, sonst komme ich nicht weiter...
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem bei Events in Collection1.539keco01.10.08 11:41
Re: Problem bei Events in Collection1.101bauer01.10.08 12:56
Re: Problem bei Events in Collection1.111keco01.10.08 13:10
Re: Problem bei Events in Collection1.085ModeratorFZelle01.10.08 18:41
Re: Problem bei Events in Collection1.319keco01.10.08 18:49
Re: Problem bei Events in Collection1.099ModeratorFZelle02.10.08 09:22
Re: Problem bei Events in Collection1.054Micke02.10.08 09:26
Re: Problem bei Events in Collection1.225keco05.10.08 11:30
Re: Problem bei Events in Collection1.112ModeratorFZelle05.10.08 12:16
Re: Problem bei Events in Collection1.103keco05.10.08 12:44
Re: Problem bei Events in Collection1.098Micke05.10.08 13:08
Re: Problem bei Events in Collection1.087ModeratorFZelle05.10.08 17:07
Re: Problem bei Events in Collection1.108keco05.10.08 19:13
Re: Problem bei Events in Collection1.176ModeratorFZelle06.10.08 09:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel