Laden...

Unter Berücksichtigung von MVVM aus meinem Datagrid eine Row auswählen um sie zu löschen per Button

Erstellt von LukeEarthWalker vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.658 Views
L
LukeEarthWalker Themenstarter:in
13 Beiträge seit 2018
vor 6 Jahren
Unter Berücksichtigung von MVVM aus meinem Datagrid eine Row auswählen um sie zu löschen per Button

Hallo zusammen,
ich bin leider noch nicht fähig mein folgendes Problem selbst zu lösen, dafür programmiere ich noch nicht lange genug. Vielleicht ist jemand so großzügig mir zu helfen.
Hier mein Anliegen:

Ich habe ein kleines Programm geschrieben das per WPF unter Berücksichtigung von MVVM eine Datenbank ausliest und editiert, naja zur Hälfte bis jetzt.
Da ist ja mein Projekt als MVVM-Konzept umsätze, möchte ich mein CodeBehind so schmal wie möglich lassen.

Ich bin gerade an dem Punkt stehen geblieben wo ich einen ausgewählten Datensatz löschen möchte.
Dazu soll man in der View (Ui) direkt auf dem DataGrid auf einen Datensatz klicken können und dann auf den Delete-Button um den Datensatz zu löschen.

Ich muss nun irgendwie diese per MouseKlick ausgewählte Zeile für mein Delete-Kommando zur verfügung stellen, nur weiß ich nicht wie. Weiß da jemand mehr als ich?

Ich bin leider noch kein Profi, deswegen würde ich mich über eine verständliche Lösung freuen, falls es diese gibt 😁

LG
Lukas

Freibier für alle!

5.658 Beiträge seit 2006
vor 6 Jahren

Hi LukeEarthWalker,

schau dir mal das Beispiel-Projekt im [Artikel] MVVM und DataBinding an, da ist soetwas umgesetzt. Im Abschnitt "Comands" gibt es auch ein Code-Beispiel.

Weeks of programming can save you hours of planning

L
LukeEarthWalker Themenstarter:in
13 Beiträge seit 2018
vor 6 Jahren

Danke für den Hinweis auf diesen tollen Eintrag. der hat mir sehr gefallen.
Leider ist das zu allgemein, dass es mein Problem löst, aber trotzdem interessant.
Ich habe das Problem, dass ich nicht weiß wie ich eine Row mit Mouse-Klick auswähle und dann per Button mein Löschkommando ausführe. Es ist dieses Auswählen von einem Datensatz das ich im ViewModel dem Löschen bereitstellen muss.

Freibier für alle!

F
10.010 Beiträge seit 2004
vor 6 Jahren

Wenn du MVVM machst, hast du ja im ViewModel deine Liste und auch ein Property SelectedEntry ( oder wie auch immer du es nennst ).
Und dein ListView/DataGrid hat ein SelectedItem das du im XAML an dieses Property bindest.

M
177 Beiträge seit 2009
vor 6 Jahren

Danke für den Hinweis auf diesen tollen Eintrag. der hat mir sehr gefallen.
Leider ist das zu allgemein, dass es mein Problem löst, aber trotzdem interessant.
Ich habe das Problem, dass ich nicht weiß wie ich eine Row mit Mouse-Klick auswähle und dann per Button mein Löschkommando ausführe. Es ist dieses Auswählen von einem Datensatz das ich im ViewModel dem Löschen bereitstellen muss.

Wenn das DataGrid oder Control keine passende SelectedItem DependencyProperty (oder der gleichen) hat kannst du auf
*Behavior *Attached properties

zurückgreifen. Schau dir vlt. auch den Anhang vom Beitrag Verlinkungsproblem: System.Windows.Interactivity keine gültige Namespace-ID an.

Bei den Attached Properties geht man so vor, dass man im DependencyPropertyChangedCallBack, vom Control (bei dir das Datagrid) das passende Event registriert und dann z.B. einen Command ausführt.