UnbindBidirectional [Résolu]

Signaler
Messages postés
98
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
30 décembre 2019
-
Hamster18
Messages postés
98
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
30 décembre 2019
-
Bonjour je suis bloque sur un problème plutôt bête je pense mais je ne trouve pas la solution ...
J'essaye de faire un bind d'un élément que j'ai sélectionnée dans une listView.
Quand je sélectionne un élément de ma ListView, j'aimerai qu’un label récupère le nom de l’objet et l'affiche. J'arrive à faire cela sauf que l'affichage de mon objet et l’affichage java (javafx.scene.control.ListView$ListViewBitSetSelectionModel@432b0232) et je voudrait le nom je je lui est donnée.
Pouvez vous m'aidez s'il vous plaît ?
Voici mon code :

Le code FXML (je pense que l'erreur est ici )
            <ListView fx:id="listDeCarte" orientation="HORIZONTAL" />
            <TextField fx:id="detailCarte" text="${listDeCarte.selectionModel}" BorderPane.alignment="CENTER" />


et le code de la fenêtre associé :

    private ListView<Carte> listDeCarte;
    @FXML
    private TextField detailCarte;


    public void initialize() throws IOException {

        listDeCarte.itemsProperty().bindBidirectional(manche.carteListJoueurProperty());
        listDeCarte.setCellFactory(param -> new CarteCellFactory());

        listDeCarte.getSelectionModel().selectedItemProperty().addListener((___, o, n) ->{
            if (n != null) {

                detailCarte.textProperty().unbindBidirectional(n.nomCarteProperty());
            }
            if (o != null) {
                detailCarte.textProperty().unbindBidirectional(o.nomCarteProperty());
            }
        });
    }



Merci d'avance pour toute réponse et aide que vous m'apporterais.
A voir également:

1 réponse

Messages postés
98
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
30 décembre 2019

        listDeCarte.getSelectionModel().selectedItemProperty().addListener((o, ov, nv) -> {
            if (ov != null) detailCarte.textProperty().unbindBidirectional(ov.nomCarteProperty());
            if (nv != null) {
               // detailCarte.textProperty().bindBidirectional(nv.nomCarteProperty());
                detailCarte.textProperty().bind(Bindings.format("B",nv.nomCarteProperty()));

            } else {
                detailCarte.setText("");
            }
        });