public WindowListeEleveParClasseUI()
        {
            // pour le formatage de la date
            CultureInfo ci = CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name);

            ci.DateTimeFormat.ShortDatePattern  = "yyyy-MM-dd";
            Thread.CurrentThread.CurrentCulture = ci;
            // fin pour le formatage de la date

            InitializeComponent();
            listerEffectifClasseBL = new ListerEffectifClasseBL();

            classeChoisi = "";

            // chargement de la liste des codes des classes dans le comboBox
            List <ClasseBE> LClasseBE = listerEffectifClasseBL.listerToutesLesClasses();

            cmbClasse.ItemsSource = listerEffectifClasseBL.getListCodeClasse(LClasseBE);

            // A mettre pour que le binding avec le DataGrid fonctionne !
            grdListeEffectif.DataContext = this;

            // Initialisation de la collection, qui va s'afficher dans la DataGrid :
            ListeEleves = new ObservableCollection <EleveBE>();
            LEleveBE    = new List <EleveBE>();

            //List<EleveBE> LEleveBE = null;
            //// on met la liste "LSerieBE" dans le DataGrid
            //RemplirDataGrid(LEleveBE);

            ParametresBE param = listerEffectifClasseBL.getParametres();

            if (param != null)
            {
                annee = param.annee;

                txtAnnee.Text         = Convert.ToString(param.annee);
                txtAnneeScolaire.Text = (param.annee - 1).ToString();
            }
            else
            {
                txtAnnee.Text         = "";
                txtAnneeScolaire.Text = "";
            }
        }
        private void cmdValider_Click(object sender, RoutedEventArgs e)
        { //on vide le dataGrid
            ListeEleves.Clear();
            LEleveBE.Clear();

            // recupération du champs "annee" saisit
            if ((cmbClasse.Text != null && txtAnneeScolaire.Text != null) && (cmbClasse.Text != "" && txtAnneeScolaire.Text != ""))
            {
                classeChoisi = cmbClasse.Text;

                List <InscrireBE> listInscrireBE;
                // si il a choit "<Toutes les Classes>
                if (cmbClasse.Text.Equals("<Toutes les Classes>"))
                {
                    listInscrireBE = listerEffectifClasseBL.listeDesEffectifsDeToutesLesClassePourUneAnnee(Convert.ToString(txtAnnee.Text));
                }
                else
                {
                    // on récupère la liste des inscrits pour la classe et l'année choisit
                    listInscrireBE = listerEffectifClasseBL.listeDesEffectifsDuneClassePourUneAnnee(cmbClasse.Text, Convert.ToString(txtAnnee.Text));
                }
                if (listInscrireBE != null)
                {
                    //si la liste n'est pas vide
                    // on recherche les informations sur les élèves inscrits (qui seront affiché dans le gridData)
                    EleveBE eleveBE = new EleveBE();

                    LEleveBE = new List <EleveBE>();
                    for (int i = 0; i < listInscrireBE.Count; i++)
                    {
                        //MessageBox.Show("[ " + listInscrireBE.ElementAt(i).codeClasse + ", " + listInscrireBE.ElementAt(i).matricule + ", " + listInscrireBE.ElementAt(i).annee+ " ]");
                        EleveBE eleve = new EleveBE();
                        eleve.matricule = listInscrireBE.ElementAt(i).matricule;
                        eleveBE         = listerEffectifClasseBL.rechercherEleve(eleve);

                        if (eleveBE != null)
                        {
                            //on recherche la catégorie de l'élève
                            AppartenirBE        appartenir  = new AppartenirBE();
                            List <AppartenirBE> LAppartenir = listerEffectifClasseBL.ListerAppartenirSuivantCritere("matricule = '" + eleveBE.matricule + "' AND annee = '" + txtAnnee.Text + "'");

                            if (LAppartenir != null && LAppartenir.Count != 0)
                            {
                                eleveBE.categorie = LAppartenir.ElementAt(0).codeCatEleve;
                            }

                            LEleveBE.Add(eleveBE);
                        }
                    }

                    //tri de la liste
                    List <EleveBE> liste = LEleveBE.OrderBy(o => o.nom).ToList();
                    LEleveBE.Clear();
                    int j = 1;
                    foreach (EleveBE eleve in liste)
                    {
                        LEleveBE.Add(eleve);
                    }

                    //on rafraichir le DataGrid
                    RemplirDataGrid(LEleveBE);
                    lblTotal.Content = LEleveBE.Count.ToString();

                    codeClasseRecherche = cmbClasse.Text;
                    anneeRecherche      = Convert.ToInt16(txtAnnee.Text);
                    //txtAnnee.Text = "";
                    ParametresBE param = listerEffectifClasseBL.getParametres();
                    if (param != null)
                    {
                        annee = param.annee;

                        txtAnnee.Text         = Convert.ToString(param.annee);
                        txtAnneeScolaire.Text = (param.annee - 1).ToString();
                    }
                    else
                    {
                        txtAnnee.Text         = "";
                        txtAnneeScolaire.Text = "";
                    }

                    cmbClasse.Text = "";
                }
            }
            else
            {
                MessageBox.Show("Tous les champs doivent pas être remplis !");
            }
        }