MVVM wie wird Eventhandler tausch geregelt

  • Themenstarter Themenstarter yfons123
  • Beginndatum Beginndatum
Y

yfons123

Gast
also angenommen ich hab eine Button view
Java:
View
    Button
        onAction: doStuff

und das view model
Code:
ViewModel
    doStuff()
        set otherHandler
        
        
    otherHandler()
        set doStuff()

wie regelt mvvm das ganze? in zb fxml setz ich die eventhandler ja in der view wenn ich aber eventhandler tauschen will

muss mein view model alle nodes kennen und da die eventhandler setzen somit hab ich 2 Orte wo die eventhandler gesetzt werden laso view+viewmodel

wie wird das geregelt=?

und wie viel darf das view model von der view überhaupt kennen?
 
Korrigiert mich, aber ist das nicht einfach Anwendungs/Controllerlogik? "Tue bei einem Klick abwechselnd x und y"?

Oder habe ich da dein Beispiel falsch verstanden?
 
Java:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.StackPane?>

<StackPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"
           fx:controller="example.ViewModel" prefWidth="500" prefHeight="300">

    <Button text="Click me!" onAction="#doStuff"/>

</StackPane>
du hast zb diese fxml datei


und zb dieses viemodel
Code:
class ViewModel{
    @FXML
    Button do;
    
    void doStuff{
        do.onAction(otherStuff);
    }
    void otherStuff{
        do.onAction(doStuff);
    }
}
das wäre jetzt so wie ich es aus dem bauch heraus hingewurschtelt hätte

was daran so MVVMig sein sollte weis ich nicht

hier hab ich in der fxml einen eventhandler gesetzt und in dem viewmodel auch für den gleichen button

also hab ich 2 Orte im code wo ich einen eventhandler für das gleiche ding setz
 
Ja, und wieso willst du den Handler umsetzen wenn es doch augenscheinlich Logik ist welche vom Handler unabhaengig ist?

Java:
void doStuff() {
    if (condition) {
        doStuffOneWay();
    } else {
        doStuffTheOtherWay();
    }
    
    condition = !condition;
}

Was genau hast du vor? Ich habe das Gefuehl dein Beispiel ist zu abstrakt.
 

Zurück
Oben