/////////////////////////////////////////////////
        /// ZONE AVAL
        /////////////////////////////////////////////////
   
        /// <summary>
        /// Determine et modifie la zone aval d'un train.
        /// </summary>
        /// <param name="train">Train à modifer</param>
        public static void determinerZA(CTrain train)
        {
            if (train.vitesseTrain == 0) return;

            CVMRegulateurComposeur res = (CVMRegulateurComposeur)Application.Current.FindResource("RessourcesMV");

            foreach (CItineraire itineraire in res.listeItineraire)
            {
                // Si la loco principale se situe sur le point de départ d'un itinéraire
                // qu'elle va en direction du prochain aiguillage,
                // et que ce soit en marche avant ou marche arrière
                if ( train.listeLocos[0].blockid == itineraire.bka &&
                     ((itineraire.bkaside == itineraire.bkbside) |
                     (itineraire.bkbside == train.listeLocos[0].blockEnterSide) |
                     train.avanceRecul))
                {
                    // Si les aiguillages sur l'itinéraire sont dans la bonne position
                    if (CLocalisation._itineraireCorrect(itineraire.listeAiguillage))
                    {
                        CZoneDetection zone = CLocalisation.trouverZone(itineraire.bkb);
                        // Si la zone est innocupée, on l'affecte au train
                        train.zoneAval = (zone.locoID == "") ? zone : null;
                        // Si la zone est occupée, on sort quand même car c'est celle vers laquelle se dirige le train
                        return;
                    }
                }
                else if ( (train.listeLocos[0].blockid == itineraire.bkb &&
                          ((itineraire.bkaside == itineraire.bkbside) |
                          (itineraire.bkaside == train.listeLocos[0].blockEnterSide) |
                          !train.avanceRecul)))
                {
                    // Si les aiguillages sur l'itinéraire sont dans la bonne position
                    if (CLocalisation._itineraireCorrect(itineraire.listeAiguillage))
                    {
                        CZoneDetection zone = CLocalisation.trouverZone(itineraire.bka);
                        // Si la zone est innocupée, on l'affecte au train
                        train.zoneAval = (zone.locoID == "") ? zone : null;
                        // Si la zone est occupée, on sort quand même car c'est celle vers laquelle se dirige le train
                        return;
                    }
                }
            }
        }
        private void BTN_Valider_Click(object sender, RoutedEventArgs e)
        {
            if (this.TB_Nom.Text == "")
            {
                MessageBox.Show("Veuillez renseigner un nom pour le train");
                return;
            }
            else if (this.CBB_zones.SelectedItem == null)
            {
                MessageBox.Show("Veuillez renseigner une zone pour le train");
                return;
            }
            CTrain nouveauTrain = new CTrain(TB_Nom.Text);
            nouveauTrain.listeZoneDetection.Add(CLocalisation.trouverZone((string)CBB_zones.Items.CurrentItem));

            res.listeTrain.Add(nouveauTrain);
            this._gestionTrain.creerTrain(nouveauTrain);

            this.Close();
        }
 // trains \\
 public void creerTrain(CTrain nouveauTrain)
 {
     
 }