IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Bouton Update disable mvvm


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut Bouton Update disable mvvm
    Bonjour,
    J'ai un petit souci a mettre mon boutton Update en disable.

    Je souhaite que mon bouton Update se mette a fonctionner uniquement lorsque la valeur change.
    J'ai donc fais ceci:
    je met un booleen a true lorsque je change de valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
       public Products CurrentProduct
            {
                get
                {
                    return _CurrentProduct;
     
                }
     
                set
                {
                    if (_CurrentProduct == value)
                    {
                        return;
                    }
                    _CurrentProduct = value;
                    RaisePropertyChanged("CurrentProduct");
                    productsViewInstance.CanBeUpdated = true;
                    productsViewInstance.Update.RaiseCanExecuteChanged();
     
                }
            }
    Quelques explications sur ces lignes:
    productsViewInstance est l'objet ou se trouve la RelayCommande et le boolean (la RelayCommande se nomme Update)
    Voici sa declaration ainsi que la commande "execute"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Update = new RelayCommand<Products>(toUpdateCommand,canUpdateValue);
    private bool canUpdateValue(Products toUpdate)
            {
                return CanBeUpdated;//(toUpdate != ressource.CurrentProduct);
            }
    Le boolean est toujours sur true, je n'ai aucune idée dans quelle partie du code je dois le mettre a False (mis a part lorsque j'instancie la classe).


    Je pense que le probleme vient de la raison suivante:

    J'ai une listBox, quand je clique sur un Item de cette liste, mon CurrentProduct change et prend la valeur de l'item sélectionné. Donc forcement le boolean est mis a true.
    Seulement je souhaite qu'il ne passe a true uniquement si l'utilisateur change manuellement sa valeur.
    Une idée?

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Qu'est ce que ca veut dire "manuellement" ? Un clic c'est pas manuel?

  3. #3
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Salut,
    En effet tu as raison, je n'ai pas ete assez claire.

    Lorsque l'on clique sur un élément de la ListBox, cela change automatiquement la valeur des textBox associé a l'item qui a ete cliqué.
    Cepandant, aucun des champs de l'item n'a changé. C'est juste que maintenant les données, au lieu d’apparaître dans la liste box, apparaissent dans des textBox.

    J'entend par manuellement, le fait que l'utilisateur modifie une donnée (cela ne peut se faire que dans la textBox), en changeant par exemple le nom de l'item.

    C'est plus claire ou toujours pas?


    PS: N'hesite pas a me dire que non, car tu ne peux que m'aider et ca ne me derangerais pas d'essayer d'expliquer 10 fois s'il le faut (je n'ai vraiment aucune idée comment faire)
    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Pour resumer:

    Je clique une fois sur le listBox, les valeurs s'affichent, et le CurrentProduct change de valeur----->>> A ce moment la je ne veux pas que le Update soit Enable.

    Je Change une valeur dans la textBox, le CurrentProduct change de valeur------>>> La je veux qui passe en Enable.

    Ca parait simple, mais je bloque

  5. #5
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Salut,
    Je voulais vous avertir que mon probleme est réglé.
    Apres pas mal de temps de reflexion et d'essais j'ai compris par savoir pourquoi je n'arrivais pas a faire une chose si simple.
    Tout d'abors, j'avais un gros probleme de comprehension du pattern MVVM.
    Ensuite, mes données n'etaient pas tres bien "bindées".

    Permetez moi de reexpliquer la situation:

    Je dispose d'une vue, dans laquelle j'ai une ListBox.
    Lorsque je clique sur un element de la listBox, Un canvas dans lequelle sont inserer des textBox s'affiche avec les données de l'element que j'ai selectioné (dans la listBox).
    Dans ce canvas, il y a egalement un bouton "Update", au moment ou une donnée d'une des textBox change, le bouton passe en mode Enable, et je peux donc "Updater" mon element.

    Explication du probleme:
    Admetons qu'un element soit selectionné dans la listBox, les données apparaissent donc dans les textbox.
    (le bouton Update est disable, jusque la pas de probleme).
    Maintenant, je souhaite regarder les données d'un autre élément, de ce fait les données dans les textbox prennent une autre valeur. Et donc.... le bouton passe en Enable alors que je n'ai en faite changé aucunes données.

    Solution:
    Comme je l'ai ecris plus haut, j'avais a la base un gros probleme de comprehension du MVVM pattern.
    En effet, ce que je voulais faire finalement c'etait de rendre editable mes données sur ce canvas pour pouvoir Updater.
    La conception de mon viewModel n'etait pas bonne. Car pour faire ce genre de chose, j'ai besoin de 2 ressources:
    Une pour les données de la listBox.
    Et l'autre pour celle des TextBox.
    La listBox puisera ces valeurs dans la base de donnée, alors que la textBox prendra ces valeurs dans le UI.

    Mon binding n'etait donc pas bon, car j'avais lier les valeurs des TextBox a celles de la ListBox.

    Bref, un gros melimelo, pour faire quelque chose de pas bien compliqué, l'essentiel est que maintenant ca marche.

    Merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton Update qui ne s'affiche pas
    Par sipatsymasaka dans le forum Eclipse
    Réponses: 1
    Dernier message: 02/10/2013, 21h39
  2. Rendre un bouton Enabled/Disabled "dynamiquement"
    Par FraocH dans le forum ASP.NET
    Réponses: 22
    Dernier message: 24/03/2010, 17h54
  3. [AC-2007] Bouton Ruban Disabled si formulaire vide
    Par curt dans le forum VBA Access
    Réponses: 5
    Dernier message: 20/04/2009, 17h18
  4. bouton radio disabled mais texte en "normal"
    Par Bindy dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 05/12/2007, 09h24
  5. Bouton CToolbar Disabled
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 22/01/2007, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo