Impossible de convertir une liste

Signaler
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021
-
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021
-
Bonjour j'ai une question j'ai une classe Jeu , et une classe catégorie jeu et dans mon main window j'essaie d'ajouter un nouveau jeu dans ma datagrid sauf qu'elle m'affiche une erreur
Erreur CS0029 Impossible de convertir implicitement le type 'int' en 'System.Collections.Generic.List<TP2_JeuxSociete.CategorieJeu>' TP2_JeuxSociete j'aimerai savoir comment résoudre le problème merci voici mon code
  
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.Collections.ObjectModel;
using System.ComponentModel;

// La classe Jeu

namespace TP2_JeuxSociete
{
    /// <summary>
    /// Classe qui représente un jeu de société.
    /// Les données initiales proviennent de https://boardgamegeek.com
    /// </summary>
    public class JeuSociete:INotifyPropertyChanged
    {
        public void NotifyPropertyChanged(string propName)
        { if (this.PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }
        private string nom;
        public string Nom
        {
            get
            {
                return nom;
            }
            set
            {
                if (this.nom != value)
                {
                    this.nom = value;
                    this.NotifyPropertyChanged("Nom");
                }
            }

        }


        private int minimumJoueurs;


        public int MinimumJoueurs
        {
            get
            {
                return minimumJoueurs;
            }

            set

            {
                if (this.minimumJoueurs != value)
                {
                    this.minimumJoueurs = value;
                    this.NotifyPropertyChanged("MinimumJoueurs");
                }

            }
        }
         private int maximumJoueurs;

        public int MaximumJoueurs

        {
            get
            {
                return maximumJoueurs;
            }
            set
            {

                if (this.maximumJoueurs != value)
                {
                    this.maximumJoueurs = value;
                    this.NotifyPropertyChanged("MaximumJoueurs");
                }


            }
        }

        private int minimumAge;
        public int MinimumAge
        {
            get
            {
                return minimumAge;
            }
            set
            {
                if (this.minimumAge != value)
                {
                    this.minimumAge = value;
                    this.NotifyPropertyChanged("MinimumAge");
                }


            }
                              


        }
        private int maximumAge;
        public int MaximumAge
        {

            get
            {
                return maximumAge;
            }
            set
            {
                if (this.maximumAge != value)
                {
                    this.maximumAge = value;
                    this.NotifyPropertyChanged("MaximumAge");
                }
            }
                



        } // On met un maximum de 99 ans quand il n'y a pas réellement de limite.
        public List<CategorieJeu> lstCategorie;

        public List<CategorieJeu> LstCategorie
        {
            get
            {
                return lstCategorie;
            }
            set
            {
                if (this.lstCategorie != value)
                {
                    this.lstCategorie = value;
                    this.NotifyPropertyChanged("Liste Catégorie");
                }
            }
        }

        

        

        private const string NOM_FICHIER = "ListeJeuSociete.json";
        public event PropertyChangedEventHandler PropertyChanged;
        public JeuSociete()
        {
            
        }
     
        /// <summary>
        /// Fait la lecture du fichier de données et retourne une liste de jeux.
        /// </summary>
        /// <remarks>
        /// Si le fichier est inexistant, vide ou corrompu, la méthode retourne une liste vide.
        /// </remarks>
        /// <returns>Une liste de jeux.</returns>
        public static List<JeuSociete> ChargerListeJeux()
        {
            string[] lignes = System.IO.File.ReadAllLines(@"ListeJeuSociete.txt");

            List<JeuSociete> lstJeux = new List<JeuSociete>();


            foreach (string ligne in lignes)
            {

                List<CategorieJeu> LstCat = new List<CategorieJeu>();

                string[] champsLigne = ligne.Split(':');

                string NomJ = champsLigne[0];
                int MinimunJoueursJ = Int32.Parse(champsLigne[1]);
                int MaximumJoueursJ = Int32.Parse(champsLigne[2]);
                int MinimumAgeJ = Int32.Parse(champsLigne[3]);
                int MaximumAgeJ = Int32.Parse(champsLigne[4]);

                string[] CategoriesJ = champsLigne[5].Split(',');

                foreach (string categorie in CategoriesJ)
                {
                    LstCat.Add(new CategorieJeu(categorie));
                }

                lstJeux.Add(new JeuSociete(NomJ, MinimunJoueursJ, MaximumJoueursJ, MinimumAgeJ, MaximumAgeJ));
            }
            return lstJeux;
        }

        /// <summary>
        /// Enregistre la liste de jeux reçue dans le fichier de données.
        /// </summary>
        /// <remarks>
        /// Le contenu existant est écrasé à l'écriture.
        /// Si le fichier n'existe pas, il sera créé.
        /// </remarks>
        /// <param name="lst">La liste des jeux qui doit être enregistrée dans le fichier.</param>
        public static void EnregistrerListeJeux(List<JeuSociete> lst)
        {
            using (StreamWriter sw = new StreamWriter("ListeJeuSociete.txt"))
            {
                foreach (JeuSociete element in lst)
                {
                    StringBuilder ligne = new StringBuilder();

                    ligne.Append(element.Nom + ":"
                        + element.MinimumJoueurs + ":"
                        + element.MaximumJoueurs + ":"
                        + element.MinimumAge + ":"
                        + element.MaximumAge + ":");

                    for (int i = 0; i < element.LstCategorie.Count; i++)
                    {
                        if (i < element.LstCategorie.Count - 1)
                            ligne.Append(element.LstCategorie[i].Nom + ",");
                        else
                            ligne.Append(element.LstCategorie[i].Nom);
                    }

                    sw.WriteLine(ligne);
                }
            }
        }

        /// <summary>
        /// Contructeur de la classe JeuSociete
        /// </summary>
        /// <param name="nom">Le nom du jeu.</param>
        /// <param name="minJoueurs">Le nombre minimal de joueurs.</param>
        /// <param name="maxJoueurs">Le nombre maximal de joueurs.</param>
        /// <param name="minAge">Le minimum d'age requis pour jouer.</param>
        /// <param name="maxAge">Le maximum d'age recommandé pour jouer.</param>
        /// <remarks>
        /// La gestion des catégories d'un jeu se fait par les méthodes de la classe.
        /// </remarks>
     /*   public JeuSociete(string nom, int minJoueurs, int maxJoueurs, int minAge, int maxAge, List<CategorieJeu> lstCat)
        {
            Nom = nom;
            MinimumJoueurs = minJoueurs;
            MaximumJoueurs = maxJoueurs;
            MinimumAge = minAge;
            MaximumAge = maxAge;

           // LstCategorie = lstCat;

            
            
        }*/

        public JeuSociete(string nom, int minJoueurs, int maxJoueurs, int minAge, int maxAge)
        {
            Nom = nom;
            MinimumJoueurs = minJoueurs;
            MaximumJoueurs = maxJoueurs;
            MinimumAge = minAge;
            MaximumAge = maxAge;

            LstCategorie = new List<CategorieJeu>();
        }

        /// <summary>
        /// Permet d'ajouter une catégorie au jeu (si cette catégorie est valide).
        /// </summary>
        /// <param name="nouvelleCategorie">La nouvelle catégorie.</param>
        public void AjouterCategorie(CategorieJeu nouvelleCategorie)
        {
            if (CategorieJeu.EstValide(nouvelleCategorie.Nom))
            {
                LstCategorie.Add(nouvelleCategorie);
            }
        }

        /// <summary>
        /// Permet de retirer une catégorie d'un jeu. 
        /// </summary>
        /// <param name="ancienneCategorie"></param>
        public void RetirerCategorie(CategorieJeu ancienneCategorie)
        {
            LstCategorie.Remove(ancienneCategorie);
        }

        /// <summary>
        /// Permet de vérifier si le jeu est d'une catégorie précise.
        /// </summary>
        /// <param name="categorie">La catégorie à vérifier.</param>
        /// <returns>True si le jeu est de la catégorie à vérifier, false sinon.</returns>
        public bool EstDeCategorie(CategorieJeu categorie)
        {
            return LstCategorie.Contains(categorie);
        }
        public static ObservableCollection<JeuSociete> ChargerFichier()
        {
            StreamReader fichierEtudiants; // using System.IO; 
            string json;
            fichierEtudiants = new StreamReader(File.OpenRead(NOM_FICHIER));
            json = fichierEtudiants.ReadLine();
            fichierEtudiants.Close();



            //  MainWindow.jeu = JsonConvert.DeserializeObject<ObservableCollection<JeuSociete>>(json);


            return JsonConvert.DeserializeObject<ObservableCollection<JeuSociete>>(json);//ici elle retourne la liste


        }
    }
}

// la classe CatégorieJeu

 
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TP2_JeuxSociete
{
   public class CategorieJeu
   {
      #region Static

      private static List<CategorieJeu> LstCategories = new List<CategorieJeu>();

      /// <summary>
      /// Fait la lecture du fichier de données et conserver la liste de catégories.
      /// </summary>
      /// <remarks>
      /// Si le fichier est inexistant, vide ou corrompu, une liste vide est implémentée.
      /// </remarks>
      public static void ChargerListeCategories()
      {
            string[] lignes = System.IO.File.ReadAllLines(@"ListeCategorieJeu.txt");

            foreach (string ligne in lignes)
            {
                LstCategories.Add(new CategorieJeu(ligne));
            }
      }

        /// <summary>
        /// Enregistre la liste de categories dans le fichier de données.
        /// </summary>
        /// <remarks>
        /// Le contenu existant est écrasé à l'écriture.
        /// Si le fichier n'existe pas, il sera créé.
        /// </remarks>
      public static void EnregistrerListeCategories()
      {
            using (StreamWriter sw = new StreamWriter("ListeCategorieJeu.txt"))
            {
                foreach(CategorieJeu element in LstCategories)
                {
                    sw.WriteLine(element.Nom);
                }
            }
        }
      
      /// <summary>
      /// Permet d'obtenir la liste de catégories. 
      /// </summary>
      /// <returns>Une liste de catégories.</returns>
      public static List<CategorieJeu> ObtenirListe()
      {
         return LstCategories;
      }

      /// <summary>
      /// Permet d'indiquer si une catégorie fait partie de la liste des catégories en mémoire.
      /// </summary>
      /// <param name="categorieVisee">La catégorie à vérifier.</param>
      /// <returns>True si la catégorie se trouve dans la liste, false sinon.</returns>
      public static bool EstValide(string categorieVisee)
      {
         bool estValide = false;
         int i = 0;

         while (!estValide && i < LstCategories.Count)
         {
            if (LstCategories[i].Nom == categorieVisee)
            {
               estValide = true;
            }

            i++;
         }

         return estValide;
      }

      #endregion

      public string Nom { get; set; }

      /// <summary>
      /// Constructeur de la classe CategorieJeu.
      /// </summary>
      /// <param name="nom">Le nom de la catégorie.</param>
      public CategorieJeu(string nom)
      {
         Nom = nom;
      }
   }
}


// Le mainWindow

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using Newtonsoft.Json;

namespace TP2_JeuxSociete
{
    /// <summary>
    /// Logique d'interaction pour MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public static ObservableCollection<JeuSociete> jeu = new ObservableCollection<JeuSociete>();
      
        private const string NOM_FICHIER = "ListeJeuSociete.json";
        public MainWindow()
        {
            InitializeComponent();
            jeu = JeuSociete.ChargerFichier();//on affecte jeu

            dgListeJeux.ItemsSource = jeu;

        }

        private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void BtnAjouter_Click(object sender, RoutedEventArgs e)
        {
            string nom=null;
            

            foreach (JeuSociete j in jeu)
            {
                if (j.Nom==txtNom.Text && j.MinimumJoueurs > j.MaximumJoueurs && maListeBox.Items.Count < 1 || maListeBox.Items.Count > 5)
                {
                    MessageBox.Show("Erreur Veuillez réessayez ", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    jeu.Add(new JeuSociete()
                    {
                        Nom = txtNom.Text,
                        MinimumJoueurs = int.Parse(txtMinimumJoueurs.Text),
                        MaximumJoueurs = int.Parse(txtMaximumJoueurs.Text),
                        MinimumAge = int.Parse(txtMinimumAge.Text),
                        MaximumAge = int.Parse(txtMaximumAge.Text),
                         
                      //La ligne de l'erreur c'est la liste de catégorie qui va contenir la valeur de la listBox      
                        LstCategorie = maListeBox.Items.Add((new CategorieJeu(nom))),
                    }); ; 
                    //Réecriture du fichier de données
                    MainWindow.ReecrireFichier();
                }
            }
          




        }

        private void DgListeJeux_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            txtNom.Text = (dgListeJeux.SelectedItem as JeuSociete).Nom;
            txtMinimumJoueurs.Text = (dgListeJeux.SelectedItem as JeuSociete).MinimumJoueurs.ToString();
            txtMaximumJoueurs.Text = (dgListeJeux.SelectedItem as JeuSociete).MaximumJoueurs.ToString();
            txtMinimumAge.Text = (dgListeJeux.SelectedItem as JeuSociete).MinimumAge.ToString();
            txtMaximumAge.Text = (dgListeJeux.SelectedItem as JeuSociete).MaximumAge.ToString();

        }
        public static void ReecrireFichier()
        {
            string json = JsonConvert.SerializeObject(jeu);

            System.IO.File.WriteAllText("ListeJeuSociete.json", json);
        }

        private void BtnModifier_Click(object sender, RoutedEventArgs e)
        {
            foreach (JeuSociete j in jeu)
            {
                if (j.Nom==txtNom.Text)
                {

                }
            }
            /*MessageBox.Show("Matricule: " + (dgEtudiant.SelectedItem as Etudiant).Matricule +
              "\nNom: " + (dgEtudiant.SelectedItem as Etudiant).Nom +
              "\nPrénom: " + (dgEtudiant.SelectedItem as Etudiant).Prenom +
              "\nEmail: " + (dgEtudiant.SelectedItem as Etudiant).Email);*/

            MainWindow.ReecrireFichier();
        }
    }
}




7 réponses

Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021
127
Salut,

Je voudrais bien essayer de t'aider. Mais, j'obtiens 77 erreurs en recopiant ton code source. D'après ce que j'ai compris dans certaines erreurs, Using doit être placé en début de fichier source.

Où est ta fonction Main ?

Tu as un niveau en C# bien plus élevé que moi. Cependant, j'ai regardé les bases officielles : https://docs.microsoft.com/fr-fr/dotnet/core/tutorials/with-visual-studio-code
J'ai constaté que le nom du namespace (HelloWorld) est le nom du dossier. J'ai remarqué également que le nom de la classe (Program) est le nom du fichier source avec l'extension cs. Enfin, j'ai vu qu'il y a une fonction Main dans la classe Program.

J'en déduis que ton dossier serait TP2_JeuxSociete, n'est-ce pas ?
Je suppose que
public partial class MainWindow : Window
serait ta classe principale (l'équivalent de Program), non ?
Et ton Main serait donc
public MainWindow()
?

Je veux préciser que même si j'utilise Linux, j'ai Visual Studio Code et que le programme vu dans : https://docs.microsoft.com/fr-fr/dotnet/core/tutorials/with-visual-studio-code fonctionne sans erreur.

Ton programme sera probablement solutionné par un spécialiste en C# qui a eu le même problème et qui est capable de lire ton code source (très long) de manière efficace. Autant dire qu'on diminue la probabilité de trouver rapidement la solution.

Pourrais-tu nous fournir l'arborescence exacte de ton projet ? Je vois qu'avec C#, la cohérence des noms des dossiers et fichiers est déterminante.
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Bonjour

@Dachiase, il ne manque pas de using, sinon ça ne compilerait pas chez lui.
Son programme utilise l’interface utilisateur WPF. Si tu as copier coller son code dans une solution en mode console (comme le suggère ta question sur le main) il te manque toutes les références nécessaires et le compilateur ne retrouve pas ses petits. Cela dit le message d’erreur est trompeur, les using sont présents mais ils ne pointent sur rien.


@danny, peux tu dire à quelle ligne arrive cette erreur?

Le message dit que tu as essayer de mettre un nombre entier dans une variable de type JeuxSociete et que dans cette classe tu n’as pas prévu que ce soit possible.

Par exemple
double nombre = "un virgule deux";

Te générerait le même genre d’erreur.

J’ai besoin de savoir quelle ligne pour essayer de comprendre si tu as vraiment besoin de cette conversion ou si c’est autre chose.
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

c'est dans ma classe mainwindow à partir de la ligne 483 dans le fond je veux ajouter un nouveau jeu dans ma datagrid et je veux recupérer chaque valeur et aussi chaque jeu est associé à un numero de catégorie et je veux être capable de donner un numero de catégorie à chaque jeux
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

je veux qu'à chaque fois que j'ajoute un nouveau jeu une catégorie doit lui être assignée et chaque catégorie à un numero
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021
127
Salut,

Oui, je pensais qu'il me manquait des fichiers ou des bibliothèques pour que les Using ne fassent pas d'erreur. En revanche, j'aurais dû me douter que ce n'était pas un programme en console.

Mais, simple curiosité, console ou interface graphique, ne vaut-il mieux pas partir sur une base simple comme indiqué sur le lien Microsoft ? Ça me perturbe de ne pas voir de Main. À moins que MainWindow soit le Main des programmes avec interface graphique ?
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

le main c'est la classe MainWindow
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Alors d’abord non, le point d’entrée n’est pas la classe mainwindows, mais la class App.

Pour ton problème
                    jeu.Add(new JeuSociete()
                    {
                        Nom = txtNom.Text,
                        MinimumJoueurs = int.Parse(txtMinimumJoueurs.Text),
                        MaximumJoueurs = int.Parse(txtMaximumJoueurs.Text),
                        MinimumAge = int.Parse(txtMinimumAge.Text),
                        MaximumAge = int.Parse(txtMaximumAge.Text),
                         
                      //La ligne de l'erreur c'est la liste de catégorie qui va contenir la valeur de la listBox      
                        LstCategorie = maListeBox.Items.Add((new CategorieJeu(nom))),
                    }); ; 



Je suppose que maListBox est une listbox sur mainwindow.

La méthode Add d’une listbox retourne l’index où est ajouté l’item.
Par exemple, il y a 5 items (le dernier index est 4), on ajoute un item, il y en aura 6 et l’index du nouveau sera 5. La méthode retourne 5.

Donc
maListeBox.Items.Add((new CategorieJeu(nom))),
retourne un entier.
Or cet entier tu veux l’affecter à LstCategorie qui est du type List<T> et ça c’est pas possible.


Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

et comment puis je remedier au problème
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
J’ai toujours pas compris ton besoin, donc pour l’instant je sais pas
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

j'ai une liste des catégories et chaque jeu a des catégories soit guerres, course, stratégie ainsi je veux à chaque ajout d'un être capable de lui donner une catégorie en lui demandant le numero de la catégorie c'est comme si le numero est comme l'index que je dois recuperer dans le fond
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021
127 >
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

Salut,

Je vais tenter une réponse en pseudo-code.

liste_categorie = ["guerre", "sport", "course"]
mad_max = Jeux("Mad Max", [liste_categorie[0], liste_categorie[2]])


Je ne vois que la possibilité de créer une classe Jeux qui aurait comme attributs : le nom du jeu, et la liste de catégories correspondante.
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021
>
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021

okay je vais essayer ça
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Ok, et que vient faire la listbox là dedans?
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

c'est dans la listbox que j'ajoute une nouvelle catégorie
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021
>
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

de toute les façons je viens de comprendre comment le faire merci pour votre aide et à plus tard
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021
127 >
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

Pourrais-tu indiquer la démarche ? Ça pourra être utile pour ceux qui cherchent à faire pareil.
Messages postés
49
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
31 mars 2021

Dans le fond lorsque j'ajoute une catégorie je stocke cela dans une liste et après quand j'ajoute un nouveau Jeu j'assigne à ma proprieté ma liste voilà une partie du code

  private List<CategorieJeu> catSelected = new List<CategorieJeu>();

private void BtnAjouter_Click(object sender, RoutedEventArgs e)
{

          

           foreach (JeuSociete j in jeu.ToList())
            {

                if (j.Nom == txtnomJeu.Text && j.MinimumJoueurs > j.MaximumJoueurs && maListeBox.Items.Count < 1 || maListeBox.Items.Count > 5)
                {
                    MessageBox.Show("Erreur Veuillez réessayez ", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }

            jeu.Add(new JeuSociete()
            {
                Nom = txtnomJeu.Text,
                MinimumJoueurs = int.Parse(txtnbMinimum.Text),
                MaximumJoueurs = int.Parse(txtnbmaximum.Text),
                MinimumAge = int.Parse(txtageMinimum.Text),
                MaximumAge = int.Parse(txtageMaximum.Text),
                LstCategorie = catSelected,




            }) ; 
                //Réecriture du fichier de données
                // MainWindow.ReecrireFichier();
 
  }

 private void BtnAjouterListeBox_Click(object sender, RoutedEventArgs e)
        {
            

            if (lstCatJeu.SelectedItems.Count < 1 || lstCatJeu.SelectedItems.Count > 5)

            {

                MessageBox.Show("Le nombre d'élements sélectionné doit être entre 2 et 4", "Erreur", MessageBoxButton.OKCancel, MessageBoxImage.Error);
            }
            else
            {
                foreach (CategorieJeu j in lstCatJeu.SelectedItems)
                {
                    lstAjout.Items.Add(j.Nom);
                    catSelected.Add(j);

                }
            }
        }