Entwickler-Ecke
Basistechnologien - EventHandler: StateChanged
Max064 - Mo 06.09.10 08:59
Titel: EventHandler: StateChanged
Hallo,
ich habe eine Klasse selbst erstellt und möchte in meiner Form ein Event Handler ausführen lassen, sobald sich eine Eigenschaft dieser Klasse ändert. Doch wie geht das?
lg Max
Max064 - Mi 08.09.10 09:30
Ja das INotifyPropertyChanged Interface geht auf jeden Fall schon mal in die richtige Richtung! Danke.
Für mich stellt sich aber momentan folgendes Problem. Die selbst erstellte Klasse, in der das neue Event erstellt wird, erbt aus NotifyPropertyChanged. Leider erbt meine neu erstellte Klasse schon aus AxShockwaveFlashObjects.AxShockwaveFlash. Aus 2 Vaterklassen zu erben ist doch nicht möglich oder?
hier mal der Programmcode soweit:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| public class myAxShockwaveFlash : AxShockwaveFlashObjects.AxShockwaveFlash { public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public bool mouse { get { return _mouse; } set { if (value != _mouse) { _mouse = value; NotifyPropertyChanged("test"); } } } } |
Danach muss ich doch in meiner Form das Event einfügen:
C#-Quelltext
1:
| this.axShockwaveFlash2.PropertyChanged += new System.EventHandler(this.flash2_MouseDown); |
Aber hier beschwert sich der Compiler mit:
| Zitat: |
Fehler 2 Keine Überladung für "flash2_MouseDown" stimmt mit dem Delegaten "System.EventHandler" überein. C:\Dokumente und Einstellungen\mh12803\Desktop\DisplayControlProjekt_100903 16.00\Software\DisplayControl\GraphicEditorForm.Designer.cs 633 55 DisplayControl
|
Ich glaube, dass der Event Handler falsch deklariert wird?!
C#-Quelltext
1: 2: 3:
| private void flash2_MouseDown(object sender, PropertyChangedEventArgs e) { } |
lg Max
Kha - Mi 08.09.10 10:21
Max064 hat folgendes geschrieben : |
| Ja das INotifyPropertyChanged Interface geht auf jeden Fall schon mal in die richtige Richtung! Danke. |
Solange Datenbindung nicht ins Spiel kommt, sondern du auf eine Änderung einer spezifischen Property im eigenen Code reagieren willst, würde ich trotzdem bei einem entsprechend benannten Event pro Property bleiben. Dann kann man sich auch nicht beim Property-Namen verschreiben.
Max064 hat folgendes geschrieben : |
| Aus 2 Vaterklassen zu erben ist doch nicht möglich oder? |
INotifyPropertyChanged ist ein Interface; die werden nicht geerbt, sondern
implementiert, und zwar beliebig oft :) .
Max064 hat folgendes geschrieben : |
C#-Quelltext 1:
| this.axShockwaveFlash2.PropertyChanged += new PropertyChangedEventHandler(this.flash2_MouseDown); | |
Oder auch kurz
C#-Quelltext
1:
| this.axShockwaveFlash2.PropertyChanged += this.flash2_MouseDown; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!