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

Windows Phone .NET Discussion :

[WP7][ToolKit] Affecter une valeur au SelectedItem


Sujet :

Windows Phone .NET

  1. #1
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut [WP7][ToolKit] Affecter une valeur au SelectedItem
    Hello,

    J'ai un ListPicker qui est rempli dans le xaml mais pas en Binding.

    J'arrive maintenant à récupérer l'élément sélectionné (du moins la chaîne de caractères).

    Et j'essai de l'affecter comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListPickerLevel.SelectedItem = (string)CurrentOptions["DefaultLevel"];
    Et cette affectation me génère un message d'erreur qui est le suivant:

    L'exception System.InvalidOperationException n'a pas été gérée
    Message=SelectedItem must always be set to a valid value.
    Je comprends par ce message que la valeur que j'essai d'affecter n'est pas présente alors qu'elle l'est bien puisque définit dans le xaml.

    Merci
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par DotNET74 Voir le message
    Hello,

    J'ai un ListPicker qui est rempli dans le xaml mais pas en Binding.

    J'arrive maintenant à récupérer l'élément sélectionné (du moins la chaîne de caractères).

    Et j'essai de l'affecter comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListPickerLevel.SelectedItem = (string)CurrentOptions["DefaultLevel"];
    Et cette affectation me génère un message d'erreur qui est le suivant:



    Je comprends par ce message que la valeur que j'essai d'affecter n'est pas présente alors qu'elle l'est bien puisque définit dans le xaml.

    Merci
    Ton SelectedItem n'est pas un String! C'est un ListPickerItem.
    Il faudrait faire un truc du genre ListPickerLevels.Items.First(i=>i.Content==(string)CurrentOptions["DefaultLevel"]) mais je sais pas trop pour la lambda

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Rempli ton ListPicker avec une liste de string au lieu de mettre des ListPickerItem tu y arrivera beaucoup mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <toolkit:ListPicker x:Name="difficulty">
       <toolkit:ListPicker.ItemTemplate>
          <DataTemplate>
             <TextBlock Text="{Binding}" />
          </DataTemplate>
       </toolkit:ListPicker.ItemTemplate>
       <!-- Les autres templates si tu en as besoin comme FullModeItemTemplate -->
    </toolkit:ListPicker>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var options = new List<string> { "Facile", "Moyen", "Difficile" };
    difficulty.ItemsSource = options;
    Soit dit en passant, apprendre Silverlight en commençant avec une application WP7 c'était pas forcément le meilleur choix...
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  4. #4
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Mon but est de faire des applications WP7 donc je me concentre sur cette plateforme.

    Et comme j'ai pris le train en marche, j'ai loupé le début de SL et WPF donc je rattrape comme je peux mon retard (et c'est pas facile )

    En tout as merci pour ton aide
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  5. #5
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Le problème (pour moi) d'utiliser une variable de type List c'est que mon application est localisé et donc dans le xaml je pointe sur des chaînes de caractères dans des fichiers de ressources (inspiré de ton tuto sur la localisation).

    donc après dans le code je ne sais pas trop comment ça se passe.

    et en plus je ne vois pas en quoi l'utilisation de la propriété ItemsSource peut m'aider à sélectionner le bon item dans la liste !
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par DotNET74 Voir le message
    Le problème (pour moi) d'utiliser une variable de type List c'est que mon application est localisé et donc dans le xaml je pointe sur des chaînes de caractères dans des fichiers de ressources (inspiré de ton tuto sur la localisation).

    donc après dans le code je ne sais pas trop comment ça se passe.

    et en plus je ne vois pas en quoi l'utilisation de la propriété ItemsSource peut m'aider à sélectionner le bon item dans la liste !
    Le type de SelectedItem depend du type de ta source.
    Si ta source est une collection de string alors tu peux choisir le bon string en mettant SelectedItem = "MyString"
    Si ta source est une collection de ListPickerItem alors il faudra que tu trouves le bon ListPickerItem

  7. #7
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Je viens de comprendre une chose essentielle (vieux motard que jamais) grâce à la recommandation de Skyounet qui est la suivante:

    la mise en place du DataTemplate d'un élément semble primordial pour tout le reste....
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

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

Discussions similaires

  1. Affecter une valeur à un input type="file" ?
    Par rocs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/08/2005, 11h10
  2. Affecter une valeur à un input type text
    Par mr.t dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/06/2005, 15h18
  3. Réponses: 4
    Dernier message: 07/04/2005, 13h37
  4. Affecter une valeur à un radiobutton svp
    Par bigfoot dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 11h17
  5. [scriplet] affecter une valeur par un bean:write
    Par viena dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 25/11/2004, 16h29

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