Announcement

Collapse
No announcement yet.

WPF: Konkretes Objekt fehlt im sender

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WPF: Konkretes Objekt fehlt im sender

    Hallo!

    WPF: Morgens voller Vorfreude und Tatendrang, spätestens nachmittags dann die Ernüchterung und der alltägliche Biss in die Tischkante...

    Das Klick-Ergeignis eines Steuerelements bringt mir gar nicht (wie bei Winforms gewohnt) das entsprechende Objekt im sender.

    Code:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
    
        End Sub
    sender ist hier: "{System.Windows.Controls.Button: Button}"

    Wenn ich nun über Handles mehrere Ereignisse an eine Prozedur hänge, wie kann ich dann feststellen, welches Objekt das Ereignis auslöste?

    Gruß

    Tom

  • #2
    Hallo,

    schau dir mal mit dem Debugger an was alles im Argument e steckt.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Ist das denn so überhaupt gebräuchlich? Geht da nix über ViewModel bzw. Commanding?

      Comment


      • #4
        Hallo,

        Ist das denn so überhaupt gebräuchlich?
        Nein, das ist nicht gebräuchlich

        @kai-carsten: Siehe mal WPF Apps With The Model-View-ViewModel Design Pattern



        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Na dann ist es ja gut Das hätte mir jetzt meine ganze Illusion von WPF genommen. Ich denke so etwas sollte man immer dazu sagen und beten dass die Leute versuchen es umzusetzen

          Comment


          • #6
            Hallo Florian,

            Ich denke so etwas sollte man immer dazu sagen
            Da hast du vollkommen recht. Ich habs vergessen
            Daher ist es gut dass du mich darauf hingewiesen hast


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Hallo,

              danke für Eure Infos!

              Meint Ihr den Weg über eigene Commands mit Hilfe von RoutedUICommand?

              Mit MVVM stehe ich ja etwas auf Kriegfuss (s. diesen Thread)...

              schau dir mal mit dem Debugger an was alles im Argument e steckt.
              Dieser Hinweis hatte mir Hoffnung gemacht, obwohl ich das vorher schon gecheckt hatte.

              Leider gibt aber auch "e" nicht das Objekt preis, oder habe ich da etwas übersehen?

              Eigentlich benötige ich nur eine Ereignisbehandlung, bei der auch das konkrete Objekt übergeben wird, dann wäre ich glücklich .

              Gruß

              Kai

              Comment


              • #8
                Also bei mir funktioniert das. Einfachen Button in die Form gezogen. Name Property des Buttons auf "myButton" gesetzt. Folgender Code im Code Behind des Click Events:

                [highlight=c#]
                private void myButton_Click(object sender, RoutedEventArgs e)
                {
                var myButton = sender as Button;

                if(myButton.Name == "myButton")
                Console.WriteLine("Jip");
                else
                {
                Console.WriteLine("Not jip");
                }
                }
                [/highlight]

                Bei mir Ausgabe: Jip

                Also ist zumindest in diesem einfachen Fall der Sender der Button. Man muss ihn nur noch casten.

                Comment


                • #9
                  Juchuuu!! Danke!!

                  Gesucht hatte ich: sender.name.ToString

                  Es lag wieder mal zu nah...

                  Jetzt bin ich erst mal froh, auch wenn es nicht "gebräuchlich" ist...

                  Daher nochmal meine Frage als Alternative:

                  "Meint Ihr den Weg über eigene Commands mit Hilfe von RoutedUICommand?"

                  Gruß

                  Kai

                  Comment


                  • #10
                    Hallo,

                    Meint Ihr den Weg über eigene Commands mit Hilfe von RoutedUICommand?
                    Wir wissen ja nicht genau was du vorhast - daher allgemeiner: den Weg über ICommand

                    Schau dir den Link zum MVVM (oben) mal an. Und dort die Links auf die verwiesen wird.


                    mfG Gü
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #11
                      Originally posted by gfoidl View Post
                      Wir wissen ja nicht genau was du vorhast - daher allgemeiner: den Weg über ICommand
                      Hallo Gü,

                      ja, das meinte ich mit "eigenen Commands".

                      Ich werde mir mal anschauen, ob das in meinem konkreten Fall etwas bringt.

                      Danke Euch einstweilen...

                      Gruß

                      Kai

                      Comment

                      Working...
                      X