Visual C# Events vs. Objekt Konstruktor

Gast #4090121
Lesenswert?

Hallo,

ich habe folgendes Problem mit Visual Studio 2013 und WPF in C#.
Ich habe mehrere Objekte (z.B. TextBox, Label etc.) in einem WPF Window 
hinzugefügt und diesen entsprechende Ereignisse zugewiesen.

Zum Beispiel soll wenn in Textbox A ein Eintrag stattfindet das Label B 
umbenannt werden.
Mein Problem ist jetzt, dass sobald ich die Anwendung im Debug Modus 
starte, ich eine Fehlermeldung erhalte, weill Label B noch NULL ist! 
D.h. das Ereignis wird ausgelöst noch bevor alle Objekte in der WPF 
erzeugt wurden!
Wie kann das sein?
Was mache ich falsch?

Gibt es eine Möglichkeit global alle Events zu deaktivieren/aktivieren?
Gast #4090531
Lesenswert?

Wie und wo hast du denn die Event-Handler zugewiesen? Wenn im WPF-Editor 
(also Objekt markieren, Eigenschaften, Ereignishandler) kann es den 
Fehler nicht geben. Wenn du "von Hand" initialisierst, mache das bitte 
mal im Loaded-Event des Hauptfensters.
Gast #4091232
Lesenswert?

Hallo,

ich habe nicht von Hand initialisiert, sondern über den Propertie Editor 
im Window Editor generiert.
Ich verwende das Event TextChanged. Wenn ich das Event TextInput 
verwende startet das Programm, wirft aber kein Event wenn ich Text in 
die Textbox eingebe.
Mittlerweile habe ich die Events bis auf das eine TextChanged Event der 
einen TextBox reduziert. Komischerweise bekomme ich jetzt die 
Fehlermeldung:

"A first chance exception of type 
'System.Windows.Markup.XamlParseException' occurred in 
PresentationFramework.dll

Additional information: 'The invocation of the constructor on type 
'Generator.MainWindow' that matches the specified binding constraints 
threw an exception.' Line number '4' and line position '70'."
Gast #4092432
Lesenswert?

ScharpingSharp schrieb:
> ich habe nicht von Hand initialisiert, sondern über den Propertie Editor
> im Window Editor generiert.
> Ich verwende das Event TextChanged. Wenn ich das Event TextInput
> verwende startet das Programm, wirft aber kein Event wenn ich Text in
> die Textbox eingebe.

Das ist merkwürdig. Wenn ich auf "TextChanged" unter Events 
doppelklicke, wird die "TextBox_TextChanged hinzugefügt und bei Eingaben 
in der Textbox auch aufgerufen:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
  MessageBox.Show("pling");
}

> Line number '4' and line position '70'."

Was steht an dieser Stelle? Wie sieht der Konstruktor aus (ist dort 
etwas, das eine Exception wirft)? Du kannst ja evtl. debuggen und dir 
nicht nur die Fehlermeldungen anschauen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren