MVVM #4 - DelegateCommand - WPF Praxis

preview_player
Показать описание
Benutzerinteraktionen mit WPF werden über das ICommand-Interface abgebildet. Das DelegateCommand erlaubt uns eine allgemeine Implementierung des Interfaces.

Musik:
-----------------------------------------------
Creative Commons CC BY 3.0
-----------------------------------------------
Рекомендации по теме
Комментарии
Автор

super Tutorialreihe, kurz und sehr informativ, einfach spitze, danke!!

scarfanat
Автор

Für mich verständlich erklärt also top
Danke

easypy
Автор

Ok. Soweit machts dann jetzt langsam Sinn. Aber wie funktioniert die Abfrage während des Tippens in das Textfeld (so wird das RaiseCanExecuteChanged() ja nur gefeuert, wenn man das Textfeld verlässt).
Hat sich erledigt: Es funktioniert doch mit dem UpdateSourceTrigger im Text der TextBox (hat zuerst aus irgendeinem Grund nicht funktioniert)

BloodyClash
Автор

Das funktioniert sehr sauber bei Buttons, aber was mache ich, wenn ich auf einem anderen Oberflächenelement, z.B. einer Textbox, ein Event, z.B. GotFocus, an eine Methode in meinem ViewModel binden möchte? Super klasse Videos übrigens! Helfen mir sehr in WPF weiter voranzukommen.

Brianboy
Автор

Aber wie Updated denn das CanExecuteChanged event (was ja mit RaiseExecuteChanged() aufgerufen wird) das CanExecute? Also eigentlich Subskriped doch gar keiner zum event? ..oder läuft das alles unter der Haube über das Binding des Commands

Gardyy_
Автор

Vielen Dank erst einmal für diese fantastische Videoreihe. Sie hat mir wirklich sehr geholfen, um MVVM anzuwenden.
Mir ist bewusst, dass in diesem Video DelegateCommands das Thema ist und dieses hast du für mich sehr verständlich beschrieben.
Bei meiner Literaturrecherche (Quelle siehe unten) bin ich auf eine weitere Methode gestoßen, wie man Button-Events auslösen kann und ich würde sehr gern deine Meinung dazu erfahren.
Hierbei kann man aus der View (XAML) direkt Methoden aus dem ViewModel aufrufen. Ein Beispiel würde so aussehen:
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:CallMethodAction TargetObject="{Binding}"
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>

Quelle (Buch): Weil, Arnaud. Learn WPF MVVM - XAML, C# and the MVVM pattern: Be ready for coding away next week using WPF and MVVM

jan.
Автор

Hi ich schon wieder :D
reine Verständnisfrage. Kann man generell sagen, solange ich den Wert einer Propertie nur lesen will (innerhalb des View-Models) dann greife ich auf _lastName zu. Wäre ja hier im Beispiel egal, ich könnte den Wer ja auch von LastName abrufen. Oder ist das "unschön", da ja etwas im Get; mit stehen könnte was dann aufgerufen wird?

freshrafyz
Автор

kann man das CanExecute irgendwie so beschreiben das wenn der Button aktiv ist oder die Methode verarbeitet der Button oder alles Buttons ausgrauen, also quasi if canExecute do work => false?

tacci
Автор

Hallo zusammen, nachdem ich die Zeile "public execute) : this(null, execute) { }" übertragen habe, sagt mir Visual Studio "Ein NULL-Literal kann nicht in einen Non-Nullable-Verweistyp konvertiert werden. Wäre jemand so hilfreich und könnte mir bei der Fehlersuche behilflich sein? Vielen Dank!

sirspielalot
Автор

Also welchen Vorteil hat das Binding eines Buttons gegenüber eines "normalen ClickEvents" ?

RT-firb
Автор

Würde mich freuen, wenn du in diesem Video vielleicht in einem Extravideo das noch einmal irgend wie vertiefst. Also speziell zur Klasse DelegateCommand und alles was darin steht...

ItsMe-fjco
Автор

Naja, der normale nutzer von C# weis denke ich nicht direkt was ein Predicate<T> Objekt ist.... Das hat denke ich ein wenig gefehlt, aber im Endeffekt kann man auch nachlesen... Deine Videos sind gut :)

thereaperhimself
Автор

Danke für das Tutorial! Mir stellt sich nur gerade die Frage ob es möglich wäre (o) = > in einer Methode zu setzten und diese dann in "new DelegateCommand(Methode)" auf zurufen ?

ClearCommand = new DelegateCommand(
> (o) => || !String.IsNullOrEmpty(lastname),
> (o) => { FirstName = ""; LastName = ""; }
);

zu ClearCommand = new DelegateCommand(Methode)

Habe es versucht aber das wird nicht ausgelöst.

Über einen Lösungsansatz wäre ich dir sehr Dankbar!

benjaminlaunicke
Автор

Kann man die Klasse DelegateCommand auch unter dem ViewModel zuordnen oder gehört das schon eher dem Model?

ThomasSchmidt-Esterle
Автор

Hi, bin großer Fan von deinen Videos. Danke für das Uploaden :). ICommand ist mittlerweile CanExecute(object? parameter) und Execute(object? parameter)... Könntest du ein Update von Source machen?

DC-seib
Автор

Ist das nicht echt übertrieben umständlich und macht eigentlich die Vorteile von MVVM zunichte ?
Ich meine im Vergleich zu einem einfachen EventHandler ist das schon echt viel Aufwand.

BloodyClash
Автор

Sorry, aber soviel Zirkus um diese einfache Funktionalität? Und das soll jetzt besonders gut lesbar sein? Also ein Fan von diesem MVVM bin ich schon mal nicht!

TottiBln