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 :

Forcer lune listBox avec une valeur [C#][Visual Studio 2010][SilverLight]


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut Forcer lune listBox avec une valeur [C#][Visual Studio 2010][SilverLight]
    Bonjour,

    depuis hier matin je n'arrive pas à résoudre un problème qui m'avait l'air simple au départ. Je voudrais forcer une listBox à une valeur par défaut au démarrage du programme et répercuter les valeurs dans une DataGrid.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <ListBox Height="100" Name="listBoxUFR" Width="175" SelectionChanged="listBoxUFR_SelectionChanged">
                                <ListBox.Items>
                                    <ListBoxItem Content="Sciences" />
                                    <ListBoxItem Content="Lettres et Langues" />
                                    <ListBoxItem Content="Droit et Sciences Eco" />
                                    <ListBoxItem Content="I.U.T." />
                                </ListBox.Items>
                            </ListBox>

    Ce que je sais faire c'est : lorsque je sélectionne une valeur de la listBox, j'appelle un programme php qui fait une requète mysql. Le résultat de cela est désérialisé et alimente ma DataGrid avec le code suivant :

    En xaml
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <data:DataGrid AutoGenerateColumns="False" Height="409" Name="_DiplomeGrid"  Width="626">
                                <data:DataGrid.Columns>
                                    <data:DataGridTextColumn Header="Nom du diplome" Binding="{Binding diplome}" />
                                    <data:DataGridTextColumn Header="Libéllé" Binding="{Binding libelle_diplome}" />                                
                                </data:DataGrid.Columns>
                            </data:DataGrid>

    En C#
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void GetDiplomeOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
            {
                if (e.Error != null || e.Cancelled)
                {
                    MessageBox.Show("Erreur lors de la lecture des diplômes");
                    return;
                }
     
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Ufr));
                Ufr monUfr = serializer.ReadObject(e.Result) as Ufr;
                _DiplomeGrid.ItemsSource = monUfr.diplomesLus;
            }

    Code c# : 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
     
    private void listBoxUFR_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                ListBoxItem lib = ((sender as ListBox).SelectedItem as ListBoxItem);
     
                if (lib.Content.ToString() == "Sciences")
                {
                    WebClient wc = new WebClient();
                    wc.OpenReadCompleted += GetDiplomeOpenReadCompleted;
                    wc.OpenReadAsync(new Uri(_CallbackUrl + "?ufr_sciences=true"));
                }
     
                if (lib.Content.ToString() == "Lettres et Langues")
                {
                    WebClient wc = new WebClient();
                    wc.OpenReadCompleted += GetDiplomeOpenReadCompleted;
                    wc.OpenReadAsync(new Uri(_CallbackUrl + "?ufr_lettres_langues=true"));
                }
     
    ect ect ...

    Ce que j'aimerais faire c'est avant InitializeComponent() :
    1 - Forcer ma valeur de listBox sur la première valeur
    2 - Appeler ma fonction PHP pour alimenter ma DataGrid en consèquence
    avec un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    _CallbackUrl = "http://localhost/PHP/TTT3.php";
    WebClient wc = new WebClient();
    wc.OpenReadCompleted += GetDiplomeOpenReadCompleted;
    wc.OpenReadAsync(new Uri(_CallbackUrl + "?ufr_sciences=true"));
    InitializeComponent();
     DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Ufr));
     Ufr monUfr = serializer.ReadObject(e.Result) as Ufr;
    Ufr monUfr = serializer.ReadObject(e.Result) as Ufr;
    _DiplomeGrid.ItemsSource = monUfr.diplomesLus;

    mais à ce niveau là je ne sais pas utiliser correctement Ufr monUfr = serializer.ReadObject(e.Result) as Ufr parce-que e n'éxiste pas dans ce contexte.

    En espérant avoir été assez clair
    Merci de me lire et de m'aider.

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Ce que j'aimerais faire c'est avant InitializeComponent() :
    1 - Forcer ma valeur de listBox sur la première valeur
    Pas possible. Ton objet n'existe pas encore, comment veux tu lui mettre une valeur?

    Par contre, utilisé le Binding avec des property et des notifypropertychanged me semble plutot intéressant

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    Merci Lapinpanda,

    peux-tu me dire par contre comment je peux faire pour forcer ma listeBoxUFR a positionner sur sa première valeur comme si j'avais cliquer dessus?
    Autre question qui me vient en te répondant : y-a-t il un moyen en C# de "d'immiter" un événement SelectionChanged?

    Merci encore

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Par défaut
    j'ai trouvé enfin la réponse mais ta participation y est pour quelque chose LapinPanda. C'était tellement simple mais je suis passé à cote de l'evidence. Oui il me fallait mon objet créé

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private void listBoxUFR_Loaded(object sender, RoutedEventArgs e)
            {
                ListBoxItem lib = ((sender as ListBox).SelectedItem as ListBoxItem);         
                WebClient wc = new WebClient();
                wc.OpenReadCompleted += GetDiplomeOpenReadCompleted;
                wc.OpenReadAsync(new Uri(_CallbackUrl + "?ufr_sciences=true"));
             }

    pour la première fois lors du démarrage de mon application, je le fais avec l'événement Loaded.

    Et j'ai trouvé pour forcer la selection au démarrage à la première valeur de la listBox : la valeur doit etre à true

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ListBox.Items>
                          <ListBoxItem Content="Sciences" IsSelected="True"/>
                          <ListBoxItem Content="Lettres et Langues" />
                          <ListBoxItem Content="Droit et Sciences Eco" />
                          <ListBoxItem Content="I.U.T." />
    </ListBox.Items>

    Merci encore mais je débute avec C# et SL et c'est loin dêtre évident.

  5. #5
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Cool

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

Discussions similaires

  1. [Débutant] problème d'intégration d'une bibliothèque sous Visual studio 2010
    Par IsaAdA dans le forum Visual Studio
    Réponses: 5
    Dernier message: 25/08/2013, 20h18
  2. Réponses: 2
    Dernier message: 28/05/2013, 22h31
  3. [Débutant] Probleme avec un fichier [C# Visual Studio 2010 Silverlight]
    Par cescu dans le forum C#
    Réponses: 6
    Dernier message: 26/09/2011, 11h20
  4. Réponses: 13
    Dernier message: 27/05/2011, 22h08
  5. Réponses: 1
    Dernier message: 18/04/2011, 17h21

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