WPF, DataGridView und Databinding

  • WPF

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von julian2704.

    WPF, DataGridView und Databinding

    Heyho.

    Also vorweg - ich bin im Besitz eines Buches, welches WPF behandelt.
    Ich habe es ebenfalls gelesen - welch Wunder - und halbwegs verstanden.
    Ich kenne die Vorteile von WPF und weiss so ziemlich alles. Ich würde sogar gerne umsteigen.
    Aber es fehlt mir an der Umsetzung. Ich starte ein Projekt - sehe den Designer.
    Und das wars auch. Ich weiss ja, das es nichts bringt die Controls einfach draufzuklatschen.
    Funktioniert ja nu alles mit StackPanels, Grids, GridPanels usw. also mit XAML.
    Also: Wie kann ich mich besser an WPF gewöhnen? Tipps? Wie habt ihr da eure Sachen begonnen?

    Nun zum zweiten Teil.
    Immer wieder höre ich hier die Begriffe Databinding und DataGridView.
    Was ist das? Was bringt das? Welche Vorteile entstehen?
    Google hab ich verwendet, allerdings sehe ich da nicht umbedingt große
    Vor/Nachteile zu anderen Controls.

    Grüße

    *Topic verschoben*
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Samus Aran schrieb:

    DataGridView ist nichts WPF-Spezifisches, und benötigen wirst du sie eh nie.
    Bindings hingegen sind zentraler Stoff und maximalst geil. Da solltest du dich einlesen.
    1. Toooootal falsch
    2. 100% richtig.

    Wenn du nen Buch gelesen hast solltest du eigentlich Bindings voll drauf haben. WPF baut sehr viel auf Bindings auf. Grundsätzlich hat so ein Binding eine Source. Default ist dabei der DataContext(beliebiges Objekt z.B. ein ViewModel). Du kannst aber auch als Source z.B. über ElementName einen Slider wählen. Nun kannst du über die Path Eigenschaft sagen ich möchte die Value des Sliders und dies z.B. zur Laufzeit ohne eine einzige Zeile Code in nem TextBlock anzeigen lassen. Beispiel: .... Text="{Binding Value, ElementName=meinslider}" ...
    Das Ganze kannste dann noch mit mehreren Einstellungen wie z.B. nem Format verfeinern und somit würde dann z.B. 'wert: 100%' dort stehen. Außerdem gibt es auch Sachen wie MultiBinding wo du mehrere Bindings zusammenführen kannst, eigene Converter,.... Schaus dir mal an denn das gehört zu 100% zu WPF.

    Was das Control DataGrid angeht. Dies ist im Prinzip eine Art Tabelle welche du von vorne bis hinten umgestalten kannst und recht viele Möglichkeiten hat. Ich hoffe für dich jedoch, dass dir das Erstellen eines eigenen Templates erspart bleibt. Mussten das mal auf der Arbeit und kann mich noch gut errinnern, dass das echt ne Drecksarbeit war :P.
    Nunja an diese "Tabelle" kannst du nun auch wieder über Bindings eine z.B. ObservableCollection dran binden und wenn du etwas in der Tabelle änderst wird das dann über Bindings wieder direkt in der Liste aktualisiert und natürlich umgekehrt. Wie Samus darauf kommt, dass man dies so gut wie nie verwendet weiß ich auch nicht. Tatsache ist aber, dass das Control garantiert sehr oft verwendet wird. Verwenden kannst du das Teil immer wenn du ne Tabelle brauchst, da es viele Möglichkeiten bietet und sehr einfach handzuhaben ist.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Hey, danke.
    Das einzige mal das ich bisher Bindings verwendet habe,
    war, als ich mal ne ListOf in ne ComboBox gelesen hab.

    Das Buch habe ich nicht komplett gelesen.
    1200 Seiten blieben mir bis jetzt erspart. Den WPF-Teil
    hab ich begonnen und das andere Zeugs was ich nicht verstanden habe.
    Soweit. Für was benötige ich denn Binding / welche Vorteile bringt es.
    Zur DataGridView: Diese Frage war nicht auf WPF bezogen, sondern sollte
    eher generell formuliert werden.

    Aktuell hab ich bisschen Probleme. Ich möchte sowohl keine WinForms mehr bauen,
    die eh nur SChrott sind, komme mit WPF aber noch nicht klar. -> Toll.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Höhö, die Videos würd ich mir gern mal ansehen ;)
    So okay. Ich denke ich werde mich dann demnächst mal intensiver mit WPF befassen.
    Wenn man die Nachteile von WinForms einmal kennt, will man garkein Projekt mehr mit
    WinForms beginnen :D

    Für was benötige ich denn Binding / welche Vorteile bringt es?
    Zur DataGridView: Diese Frage war nicht auf WPF bezogen, sondern sollte
    eher generell formuliert werden.

    Das wäre dann das einzige was ich noch gern wüsste :)

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Du kannst Objekte als DataContext eines Elements setzen, z.B. eines Fensters. Im XAML des Fensters kannst du dann mit {Binding PropertyName} oder {Binding Path=PropertyName} drauf zugreifen.
    Ein Beispiel: Sagen wir, du hast ein Objekt mit einer String-Property, die "Name" heißt. Wenn du dieses Objekt jetzt mit DataContext = myObject; als DataContext des Fensters setzt, kannst du, wenn du diese Property mit ner TextBox anzeigen und ändern lassen willst, dies im XAML des Fensters machen:

    XML-Quellcode

    1. <TextBox Text="{Binding Name}" />
    Fertig. Wenn jemand in der TextBox etwas eingibt, wird die Property in Echtzeit geändert. Wenn du die Property im Code änderst, verändert sich auch der Kram in der TextBox.
    Vorbei sind die Tage, in denen man UI-Elemente im Code ansprach. ;)
    Jo, das erklärt schonmal bisschen was.
    Ich werd mal im MSDN genauer nachsehn ;)

    Danke euch, Thema erledigt.
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!