Benutzersteuerelement unsichtbar machen per Code

  • WPF

Es gibt 62 Antworten in diesem Thema. Der letzte Beitrag () ist von PadreSperanza.

    Jep, Thema vererbung.
    Ist glaube ich das erste was ich erwähnte in dem Kapitel zu Binding.

    Man kann das DataContext Property auch binden wodurch du jederzeit auch innerhalb eines ViewModels den DataContext beinflussen kannst. Ja, Binding ist schon eine sehr flexible Sache, denn so kannst du auch jederzeit den DataContext eines Controls beeinflussen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nofear23m schrieb:

    Thema vererbung.
    Zu beachten, dass es hier um eine andere Art von Vererbung geht, als was normalerweise in OOP-Sprachen unter Vererbung verstanden wird (Schlüsselwort Inherits).
    Man könnte es "Vererbung der Sichtbarkeit" nennen - weil was im übergeordneten Objekt sichtbar ist, ist auch in den darin eingeschachtelten Elementen sichtbar.

    Vielleicht sollte man aber auch einen anderen Begriff wählen - "Scope" scheint mir bisserl angemessener.
    Exakt. Der DataContext wird durch die Kinderelemente hindurch vererbt. Sie alle wissen, worauf dein Stammelement (oder Elternelement) sich bezieht und nutzen das ebenfalls - Ausnahme wäre nur, wenn du einem Kindelement speziell einen anderen DataContext hinzufügst. Dann würde dieses Element (samt all seiner Kinder) nun einen anderen DataContext besitzen. Setzt du den DataContext im MainWindow, gilt er folglich für alle Kinder, die sich im MainWindow befinden (und das sind ja nun mal alle).

    Steht irgendwo im MainWindow dann jedoch eine Border zum Beispiel, dessen DataContext du explizit setzt, werden alle Kinder des Borders genau auf den DataContext des Borders reagieren. Alles, was aber nach dem Border kommt, kennt wieder nur den Context des MainWindows

    EDIT: Irgendwie wurden mir die Antworten der beiden Vorposter nicht angezeigt, als ich geantworet habe oO