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 :

synchronisation entre plusieurs graphiques


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut synchronisation entre plusieurs graphiques
    bonjour;

    voila, j' ai deux graphiques, un ColumnSeries et un PieSeries;
    Le ColumnSeries se met a jour via une bdd;

    lorsque je sélectionne un Items dans le ColumnSerie le PieSeries doit afficher en détail les données de l'item du ColumnSerie;

    voici mon code:
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            <toolkit:Chart x:Name="graphgeneral">
                <toolkit:ColumnSeries x:Name="nombre" Title="Population" ItemsSource="{Binding ElementName=populationDomainDataSource, Path=Data}" 
                                      DependentValueBinding="{Binding Path=NbPersonnes}" IndependentValueBinding="{Binding Path=Lieu}" SelectionChanged="nombre_SelectionChanged"/>
                <toolkit:LineSeries x:Name="enfant" Title="Enfant" ItemsSource="{Binding ElementName=populationDomainDataSource, Path=Data}" 
                                    DependentValueBinding="{Binding Path=NbEnfant}" IndependentValueBinding="{Binding Path=Lieu}" />
            </toolkit:Chart>
     
            <toolkit:Chart x:Name="graphville" Visibility="Collapsed">
                <toolkit:PieSeries x:Name="ville" ItemsSource="{Binding ElementName=nombre, Path=SelectedItems}" 
                                   IndependentValueBinding="{Binding Path=Lieu}" DependentValueBinding="{Binding Path=NbPersonnes}"/>
            </toolkit:Chart>

    En fait mon graphique avec ma ColumnSeries représente le nombre de personnes et la LineSeries le nombre d' enfant par ville.

    Lorsque je clique sur un Items le PieSeries doit m'afficher pour la ville sélectionnée le nombre d' enfant et le pourcentage que cela représente, 100% étant le nombre de personnes.

    Merci;

  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
    Ton code me semble correcte, mais je connais pas les charts du toolkit et je trouve pas la doc des classes en ligne!

    Mais il n'y a pas de " IsSelectionEnabled="True"" à renseigner sur le columnseries?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    BONJOUR !

    si si, le " IsSelectionEnabled="True"" est bien renseigné dans mon code.

    mais je ne sais pas comment récupérer les infos de l' item sélectionné, l' item se met bien en rouge lorsque je clique dessus.

  4. #4
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Je vois deux problèmes.
    1) c'est SelectedItem et pas SelectedItems
    2) Tu dois transformer tes données pour ton PieSeries :

    Voila les structures que j'ai crée. Data ce sont tes données (je ne connais pas la classe que tu as utilisé) et PopulationDetail qui est la transformation pour le PieSeries :
    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
     
        public class Data
        {
            public int NbPersonnes { get; set; }
     
            public int NbEnfant { get; set; }
     
            public int Lieu { get; set; }
     
        }
     
        public class PopulationDetail
        {
            public string Name { get; set; }
     
            public int Nombre { get; set; }
        }

    Maintenant le converter qui va faire la transformation :
    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
     
    public class ElementToList : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if ((value != null) && (value is Data))
                {
                    var thedata = value as Data;
     
                    return new List<PopulationDetail> { new PopulationDetail { Name = "Enfants", Nombre = thedata.NbEnfant }, new PopulationDetail { Name = "Personnes", Nombre = thedata.NbPersonnes - thedata.NbEnfant } };
                }
     
                return null;
            }
     
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }
    Et le PieSerie :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <!-- a mettre dans resources de la page -->
        <UserControl.Resources>
            <SilverlightApplication1:ElementToList x:Key="ElementToList" />
        </UserControl.Resources>
    <!-- remplace le PieSeries -->
     <toolkit:PieSeries x:Name="ville"
                                   ItemsSource="{Binding ElementName=nombre, Path=SelectedItem,Converter={StaticResource ElementToList}}"
                                   IndependentValueBinding="{Binding Path=Name}"
                                   DependentValueBinding="{Binding Path=Nombre}" />

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    bonjour,

    je n' utilise pas une classe pour traiter mes données, je suis directement sur la BDD,

    j' ai suivi le tuto a cette adresse:
    http://blogs.msdn.com/b/davrous/arch...e-de-code.aspx

    je sais pas si c' est la cause (je pense que oui) mais pour le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((value != null) && (value is Data))
    quand je veux transformer mes valeurs il me retourne toujours false pour le

  6. #6
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Et quel est le type de value? (Tu peux le voir via la fenêtre watch, par exemple.)

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    bonjour;

    le type que j' ai dans la fenêtre watch c' est :

    object {appli_silverlight_microsoft.Web.Population}

    j' ai donc mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                if ((value != null) && (value is Population))
                {
                    int resenfant;
                    var thedata = value as Population;
     
                    resenfant = thedata.NbEnfant.Value;
    (NbEnfant est un int nullable)

    et la ça a marché.

    MERCI pour tout.

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

Discussions similaires

  1. Synchronisation entre plusieurs BDD distantes
    Par titinto dans le forum Administration
    Réponses: 0
    Dernier message: 11/06/2014, 21h34
  2. Réponses: 7
    Dernier message: 24/04/2014, 16h37
  3. Synchronisation de plusieurs onglets entre eux
    Par 44jeje44 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/04/2010, 17h16
  4. Synchronisation entre plusieurs base SQL Server
    Par vivoli12 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/05/2007, 13h47
  5. Réponses: 4
    Dernier message: 16/02/2006, 13h51

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