Announcement

Collapse
No announcement yet.

WPF - Elemente Zugriff

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

  • WPF - Elemente Zugriff

    Guten Tag,

    ich habe eine DLL gebaut in der meine ganzen Fenster und UserControls liegen die ich für meine Anwendung benötige. Diese habe ich dann eingebunden.

    Bei meinen UserControls konnte ich über:

    UserControl1 test = new Usercontrol()

    test.textbox1.Text="gjhadgjhs";

    auf die einzelnen Steuerelemente zugreifen.
    Jetzt habe ich der DLL ein neues Fenster hinzugefügt und da werden mir die Steuerlemente nicht mehr angezeigt! Woran liegt das?

    MFG Daniel

  • #2
    Hallo Daniel,

    das Vorgehen ist so nicht korrekt. Der direkte Zugriff auf die TextBox des UserControls widerspricht dem Prinzip der Kapselung von der OOP. Zusätzlich gibt es in WPF mit Datenbindung elegantere Möglichkeiten.

    Für beides - bzw. zur Lösung - erstell eine DependencyProperty auf die von außen zugegriffen werden kann, auch via Bindung.


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

    Comment


    • #3
      Mir ist klar dass es auch über Dependency Eigenschaften gehen. Aber ich wollte ja wissen warum es mal geht und mal nicht. Abgesehen davon das ich ja die Dependency Properties für jedes Element anzulegen, dass ist doch auch umständlich. Für diesen speziellen Fall würde ich halt gern wissen warum der ein Fall geht und der andere nicht!

      Es ist doch komisch, wenn ich mein UserControl / Fenster direkt in meinem Projekt habe das ich dann auf die Elemente zugriff habe, lagere ich sie in eine dll aus habe ich keinen zugriff bzw. jetzt keinen zugriff mehr! Das ergibt doch keine sinn

      mfg Daniel
      Zuletzt editiert von gfoidl; 06.07.2011, 11:52. Reason: zusammengeführt

      Comment


      • #4
        Hallo,

        wie ist denn die Sichtbarkeit. internal? Dann geht es nicht.

        Unabhängig davon ist das keine OO-Lösung. Siehe obigen Post.


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

        Comment


        • #5
          Ja ist internal gesetzt, und JA ist nicht die wahre Lösung mir klar. Wollte ja nur wissen WARUM es manchmal geht und WARUM Nicht, alternativ kann man wohl über XAML jedes Element mit x:FiledModifer="public" das ganze auf public setzten! Ich weiß ist kein OOP aber im Moment ist mir das wurscht, da es für dieses Projekt ausreicht.!

          MFG Daniel

          Comment

          Working...
          X