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 Presentation Foundation Discussion :

Ordre des Tab Items aléatoire


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut Ordre des Tab Items aléatoire
    Bonjour à tous!

    Après de nombreuses heures passées sur ce forum à lire les galères des autres en esperant que cela pourrait m'aider, j'ai besoin de votre aide sur quelque chose que je n'arrive pas à comprendre.

    J'ai dans ma base un certain nombre d'éléments. J'ai besoin de créer dans mon interface une Tab pour chacun de ces éléments (besoin de création dynamique donc).

    J'utilise le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                    while (reader.Read())
                    {
                        TabItem tab_item = new TabItem();
                        tab_item.Header = reader.GetString(4);
                        tab_item.GotFocus += new System.Windows.RoutedEventHandler(itemChange);
                        tabControl.Items.Add(tab_item);
                    }
    Le reader parcourt la base, et définit le header de chaque tabitem. J'ajoute ensuite les items au tab control.

    Cependant, au runtime, l'ordre des tabItem ainsi crées est completement aléatoire et change a chaque fois que je clique sur un d'entre eux.

    Ex:

    A l'initialisation:
    Titre 1
    Titre 2
    Titre 3

    Je clique sur Titre 2:
    Titre 3
    Titre 1
    Titre 2

    En gros celui sélectionné devient le dernier et celui juste après devient le premier. Que faire?

  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
    Est ce qu'on peut voir la tête de ta fonction itemChange() ?

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut
    Je ne pense pas que itemChange y soit pour quelque chose. J'ai essayé de nouveau sans mettre de EventHandler mais ça change l'ordre quand même. Un exemple complet:

    Dans le XAML:
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    <TabControl Name="Tab_control_cours" HorizontalAlignment="Left" Width="178.369"/>

    La hiérarchie des objets se fait ainsi:
    Grand TabControl avec TabItems définis en dur -- Grid -- ScrollViewer -- Ce TabControl dynamique

    Un autre exemple de création dynamique encore plus simple:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public HomePage()
            {
                  InitializeComponent();
                  String[] titres = { "1", "2", "3","4" };
                  foreach(String s in titres)
                  {
                      TabItem tabItem = new TabItem();
                      tabItem.Header = s;
                      Tab_control_cours.Items.Add(tabItem);
                  }
     
            }

    L'ordre change encore... alors qu'il n'y a pas de fonction..?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par keysharpener Voir le message
    Je ne pense pas que itemChange y soit pour quelque chose. J'ai essayé de nouveau sans mettre de EventHandler mais ça change l'ordre quand même. Un exemple complet:

    Dans le XAML:
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    <TabControl Name="Tab_control_cours" HorizontalAlignment="Left" Width="178.369"/>

    La hiérarchie des objets se fait ainsi:
    Grand TabControl avec TabItems définis en dur -- Grid -- ScrollViewer -- Ce TabControl dynamique

    Un autre exemple de création dynamique encore plus simple:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public HomePage()
            {
                  InitializeComponent();
                  String[] titres = { "1", "2", "3","4" };
                  foreach(String s in titres)
                  {
                      TabItem tabItem = new TabItem();
                      tabItem.Header = s;
                      Tab_control_cours.Items.Add(tabItem);
                  }
     
            }

    L'ordre change encore... alors qu'il n'y a pas de fonction..?
    J'ai fait le même test, chez moi y a pas de problème... Essaie de simplifier progressivement pour essayer d'isoler l'origine du problème.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut
    Ce que j'avais oublié de mentionner, c'est que je souhaitais que mes tabs s'affichent verticalement, sur le côté gauche de la page.

    Ajouter TabStripPlacement="Left" dans le XAML a permis de régler le problème...

    J'ai quand même du mal à comprendre pourquoi ils se réarrangeaient sans ça mais bon... Merci à vous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2008, 17h30
  2. Changer l'ordre des Items de Menu.
    Par Ivynox dans le forum C#
    Réponses: 3
    Dernier message: 29/11/2007, 15h49
  3. Problème Ordre des Tab dans un TabControl VB.Net
    Par yenissay1 dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/05/2007, 22h31
  4. [débutant] Ordre des champs de saisie par la touche tab
    Par almisuifre dans le forum C++Builder
    Réponses: 10
    Dernier message: 03/03/2005, 19h45
  5. [Portal 9iAS] : ordre des items dans une région
    Par melitta dans le forum Oracle
    Réponses: 8
    Dernier message: 21/10/2004, 14h01

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