Hallo,
ja natürlich hast Du Recht. Ich habe den Code jedoch nur dazu verwendet um ein wenig zu testen.
Als ich den Code in eine eigene Klasse eingebunden habe, ist mir aufgefallen, dass es wieder zu der Fehlermeldung kommt, wenn ich das Ereignis im Konstruktor abonniere. Sobald ich dies z. B. in "Window_Loaded" tue, funktioniert dies einwandfrei. Natürlich ist der Aufruf c.Raise(); nur zum Test
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| public partial class MainWindow : Window {
public MainWindow() { InitializeComponent(); }
private void Message(int CurrentID) { MessageBox.Show(Convert.ToString(CurrentID)); }
private void Window_Loaded(object sender, RoutedEventArgs e) { Class1 c = new Class1(); c.NewDataSelected += new Class1.NewDataSelectedEventHandler(Message); c.Raise(); } }
class Class1 { public delegate void NewDataSelectedEventHandler(int CurrentID); public event NewDataSelectedEventHandler NewDataSelected;
public void Raise() { NewDataSelected(1); } } |