public CompareIndicWindow()
        {
            InitializeComponent();

            typeComparaison = TypeComp.Add;
            cbSelectModeComp.Items.Add("Addition");
            cbSelectModeComp.Items.Add("Soustraction");
            cbSelectModeComp.Items.Add("Moyenne");
            cbSelectModeComp.SelectedIndex = 0;
        }
        /// <summary>
        /// Méthode qui permet de comparer les taux de deux indicateurs
        /// </summary>
        /// <param name="type">Type de comparaison</param>
        public void compareAllerRetour(TypeComp type)
        {
            // Création du nouvel indicateur de comparaison
            IndicateurAllerRetour resultat = new IndicateurAllerRetour(fusionUsers(this, IndicCompare), fusionOrdres(this, IndicCompare), fusionPA(this, IndicCompare), fusionS(this, IndicCompare), fusionGroupes(this, IndicCompare));

            // On cherche à comparer les deux dictionnaires
            Dictionary<ImageExp, List<double>> dico = new Dictionary<ImageExp,List<double>>();

            // On remplit le dictionnaire avec les données du premier indicateur
            foreach (ImageExp img in this.Data.Keys)
                {
                    if (dico.ContainsKey(img))
                    {
                        dico[img].Add(this.Data[img]);
                    }
                    else
                    {
                        dico.Add(img, new List<double>());
                        dico[img].Add(this.Data[img]);

                    }
                }
            // On remplit le dictionnaire avec les données du second indicateur
            foreach (ImageExp img in IndicCompare.Data.Keys)
                {
                    if (dico.ContainsKey(img))
                    {
                        dico[img].Add(IndicCompare.Data[img]);
                    }
                    else
                    {
                        dico.Add(img, new List<double>());
                        dico[img].Add(IndicCompare.Data[img]);

                    }
                }
            //Puis on procède à la comparaison voulue
            // Ne pas oublier de remplir le dico de l'indicateur à chaque étape
            if (type == TypeComp.Add)
            {
                resultat.Data = additionner(dico);
            }
            else if (type == TypeComp.Sous)
            {
                resultat.Data = soustraire(dico);
            }
            else
            {
                resultat.Data = moyenner(dico);
            }

            DataComparaison.Add(this.Data);
            DataComparaison.Add(IndicCompare.Data);
            DataComparaison.Add(resultat.Data);
        }
        private void btnCreateCompareIndic_Click(object sender, RoutedEventArgs e)
        {
            Indicateur indSel1 = cbSelectIndic1.SelectedItem as Indicateur;
            Indicateur indSel2 = cbSelectIndic2.SelectedItem as Indicateur;
            typeComparaison = AppData.convertStringToTypeComp(cbSelectModeComp.SelectedItem as string);

            /* Méthodologie de la création de comparaison :
             * On cast les deux indicateurs vers le type d'indicateur voulu
             * On définit l'indicateur comparé au second indicateur pour le premier indicateur
             * On appelle la méthode de comparaison du premier indicateur
             * On ajoute l'indicateur 1 à la liste des indicateurs comparateurs
             * On génère l'UC de l'indicateur comparateur
             */

            if (indSel1 != null && indSel2 != null)
            {
                if (indSel1 is IndicateurTauxRecouvrement)  // Taux recouvrement
                {
                    Dictionary<ImageExp, double> dicoCompare = new Dictionary<ImageExp, double>();
                    IndicateurTauxRecouvrement indTR1 = indSel1 as IndicateurTauxRecouvrement;
                    IndicateurTauxRecouvrement indTR2 = indSel2 as IndicateurTauxRecouvrement;

                    indTR1.IndicCompare = indTR2;
                    indTR1.compareTaux(typeComparaison);
                    AppData.ComparateursTauxRecouvrement.Add(indTR1);
                    CompTauxRecouvrementUC compTauxRecouvrement = new CompTauxRecouvrementUC();

                }
                else if (indSel1 is IndicateurDensiteRecouvrement)      // Densité de recouvrement
                {
                    Dictionary<ImageExp, double[,]> dicoCompare = new Dictionary<ImageExp, double[,]>();
                    IndicateurDensiteRecouvrement indTR1 = indSel1 as IndicateurDensiteRecouvrement;
                    IndicateurDensiteRecouvrement indTR2 = indSel2 as IndicateurDensiteRecouvrement;

                    indTR1.IndicCompare = indTR2;
                    indTR1.compareDensite(typeComparaison);
                    AppData.ComparateursDensiteRecouvrement.Add(indTR1);
                    CompDensiteRecouvrementUC compDispersionPA = new CompDensiteRecouvrementUC("gris");
                }
                else if (indSel1 is IndicateurDispersionPA)             // Dispersion PA
                {
                    Dictionary<ImageExp, double> dicoCompare = new Dictionary<ImageExp, double>();
                    IndicateurDispersionPA indTR1 = indSel1 as IndicateurDispersionPA;
                    IndicateurDispersionPA indTR2 = indSel2 as IndicateurDispersionPA;

                    indTR1.IndicCompare = indTR2;
                    indTR1.compareDispersion(typeComparaison);
                    AppData.ComparateursDispersionPA.Add(indTR1);
                    CompDispersionPAUC compDispersionPA = new CompDispersionPAUC();
                }

                else if (indSel1 is IndicateurAllerRetour)          // Aller Retour
                {
                    Dictionary<ImageExp, double> dicoCompare = new Dictionary<ImageExp, double>();
                    IndicateurAllerRetour indTR1 = indSel1 as IndicateurAllerRetour;
                    IndicateurAllerRetour indTR2 = indSel2 as IndicateurAllerRetour;

                    indTR1.IndicCompare = indTR2;
                    indTR1.compareAllerRetour(typeComparaison);
                    AppData.ComparateursAllerRetour.Add(indTR1);
                    CompAllerRetourUC compDispersionPA = new CompAllerRetourUC();
                }
            }
            else
            {
                MessageBox.Show("Veuillez sélectionner correctement les indicateurs", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }