Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Event wird nicht aboniert
Chris777
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Event wird nicht aboniert

beantworten | zitieren | melden

Hallo Leute,
ich bin neu hier und komme natürlich gleich mit einer Frage.
Ich habe eine WPF-Seite/Klasse, eine EventArgsKlasse und eine Klasse in der die Methoden sind.
In der Klasse gibt es eine Methode, die ein Event auslöst. In der WPF-Seite/Klasse gibt es eine Methode die darauf lauschen soll.
Leider aboniert die Methode das Event nicht und ich finde einfach nicht heraus warum sie das nicht tut. Wahrscheinlich eine ganz einfache Sache...

Sorry für die schlechte Schreibweise. Ich schreibe das größtenteils aus dem Kopf und ohne eine IDE. Ist nicht mein Rechner, auf dem ich gerade bin. :-)

EventArgsKlasse


public class HalloEventArgs : EventArgs
{
    public string Name {get; set;}
}

Klasse mit den Methoden:


public delegate void XyzEventHandler(object sender, HalloEventArgs e);
public class ABC
{
   public void Begruessung()
{
   SagHallo("Chris");
}

public event XyzEventHandler begruessung;

protected virtual void SagHallo(string name)
{
   if(begruessung != null)
      {
         HalloEventArgs args = new HalloEventArgs
         {
            args.Name = name;
         }

         begruessung(this, args);

      }
}
}

Und nun die WPF Seite/Klasse


public partial class Home : Page
{
   ABC abc = new ABC;
   public Home
   {
      abc.begruessung += begruessung;
      InitializeComponent();
   }

   begruessung(object sender, HalloEventArgs e)
   {
       tb.text = e.Name;
   }
}

Was habe ich falsch gemacht?
Viele Grüße
Chris
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Chris777 am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16204

beantworten | zitieren | melden

Was genau hast Du vor?

In WPF arbeitet man eigentlich nicht primär mit Events. WPF ist so konzipiert, dass der MVVM Pattern verwendet werden sollte.
[Artikel] MVVM und DataBinding
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Chris777
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Hallo Abt,
in der Methoden-Klasse gibt es eine Methode, die alle 30 sec einen Ping an eine IP sendet. Ist der Ping.Reply Success, soll in einer TextBox auf der WPF-Seite eine positive Meldung kommen. Ist der Ping nicht erfolgreich, soll eine negative Meldung kommen.
Ich wollte die Übermittlung des Statuses mal mit Events probieren.
Wenn man es normalerweise nicht so macht, dann werde ich etwas anderes versuchen. Bin immernoch am lernen und möchte mich an die Standards halten.

Viele Grüße
Chris
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Chris777 am .
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

wo wird denn die Methode Begruessung() der Klasse ABC überhaupt aufgerufen?
Ohne Aufruf wird kein Event ausgelöst...

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Chris777
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Hallo MarsStein,

wie gesagt, ich hab das Beispiel nur schnell ohne IDE geschrieben und habe den Button in der CodeBehind-Classe des WPF-Windows vergessen,
der bei Click die Methode "SagHallo" aufruft und einen String uebergibt (sorry mit den Umlauten - sitze dienstlich in den USA und schreibe gerade mit meinem US-Rechner).

Viele Gruesse
Chris
private Nachricht | Beiträge des Benutzers