Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conversion d'un label en énumération C#

    17 septembre 2020 à 2:27:09

    Bonjour,

    je suis encore novice en c# cela dit c'est un langage qui est tellement puissant que j'imagine qu'il existe une solution pour convertir le contenu d'une textbox en énumération.

      

    J'aimerais convertir la valeur des labels en énumération pour les afficher si c'est possible de le faire. J'ai trouvé comment faire pour le nom, créateur et la période comme ce sont des types string. 

    Voici mon code pour le nom, le créateur et la période 

    private void DG_OEUVRES_SelectionChanged(object sender, EventArgs e)
            {
                //récupère l' Id depuis l'oeuvre séléctionnée dans la Datagrid.
                var oeuvreIdObject = DG_OEUVRES.Rows[DG_OEUVRES.CurrentRow.Index]?.Cells[0]?.FormattedValue;
                if (oeuvreIdObject == null) return;
    
                //récupère l'oeuvre courante en fonction de la ligne séléctionnée.
                int oeuvreId = int.Parse(oeuvreIdObject.ToString());
                currentOeuvre = OeuvresList.FirstOrDefault(x => x.Id == oeuvreId);
                if (currentOeuvre == null) return;
    
                //affiche les données de l'oeuvre dans la section 'Fiche Oeuvre'.
                LBL_NOM.Text = currentOeuvre.Nom;
                LBL_CREATEUR.Text = currentOeuvre.Createur;
                LBL_PERIODE.Text = currentOeuvre.Periode;

    Merci d'avance pour votre aide précieuse. 





    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2020 à 11:05:06

      Comme les label sont fonction de la langue et que le code non, j'ai du mal à en voir l'intérêt.
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        18 septembre 2020 à 12:48:38

        je n'ai pas compris la problématique (surtout pourquoi une conversion en énumération ?) currentOeuvre est  du type d'objet contenu dans OeuvresList, je doute que ce soit une énumération
        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2020 à 21:10:23

          umfred a écrit:

          je n'ai pas compris la problématique (surtout pourquoi une conversion en énumération ?) currentOeuvre est  du type d'objet contenu dans OeuvresList, je doute que ce soit une énumération


          Bonsoir,

          si vous voulez je voulais afficher le type et le statut dans la vue "fiche oeuvre" et je ne sais pas comment faire. J'ai trouvé comment faire pour le nom, le créateur et la période mais pas pour le statut et le type sachant que je veux récupérer la valeur de l'énumération et la transformer en string pour le mettre dans un label.

          Si je tape LBL_TYPE.Text = currentOeuvre.Type;

          ça ne fonctionne pas car la valeur de l'énumération ne ressort pas en chaîne de caractère. 

          -
          Edité par fj411! 9009!3 20 septembre 2020 à 21:57:29

          • Partager sur Facebook
          • Partager sur Twitter
            21 septembre 2020 à 11:22:28

            Comme c'est le truc qui doit être localisable (aka doit changer en fonction de la langue de l'utilisateur), je ferais une procédure/fonction/méthode dédiée qui prend en entrée la valeur de l'énumération et renverrait le texte correspondant (en fonction de la langue, langue que la procédure/fonction/méthode déterminera pas la "Culture" du thread appelant.

            Il existe des méthodes à base d'Attribut .NET mais elles sont plus complexes à utiliser et la localisation est bien plus fastidieuse qu'une simple méthode.

            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              21 septembre 2020 à 14:06:56

              De ce que je pense comprendre, Tu récupères seulement l'id du type dans ta requête, il faut aller rechercher la correspondance entre l'id et son nom; mais tu n'as pas cette information (ainsi que les précédentes) déjà dans ta DataGrid(?) DG_Oeuvres ?
              • Partager sur Facebook
              • Partager sur Twitter
                23 septembre 2020 à 13:36:51

                umfred a écrit:

                De ce que je pense comprendre, Tu récupères seulement l'id du type dans ta requête, il faut aller rechercher la correspondance entre l'id et son nom; mais tu n'as pas cette information (ainsi que les précédentes) déjà dans ta DataGrid(?) DG_Oeuvres ?


                @umfred : En fait si mais c'est pas le problème de la datagrid, j'aimerais renvoyer la valeur d'une énumération sous forme de chaîne de caractères. Je trouve pas mal d'exemple de conversion de string vers énumération mais très peu dans l'autre sens.

                @bacelar :  En effet je pensais faire une fonction de 《conversion》 dans une classe statique dédiée exclusivement aux conversions.

                -
                Edité par fj411! 9009!3 23 septembre 2020 à 13:41:44

                • Partager sur Facebook
                • Partager sur Twitter
                  23 septembre 2020 à 16:55:44

                  Voici des exemples plutôt sophistiqués :

                  https://stackoverflow.com/questions/17380900/enum-localization

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    23 septembre 2020 à 17:25:59

                    je ne pige plus rien à ce sujet ou j'ai raté un truc.
                    pourquoi bacelar parle de localisation du texte ?? je ne vois apparaitre nulle part ce type de demande.
                    ensuite, si l'information est dans le datagrid, pourquoi ne pas la lire directement ?

                    ensuite l'énumération est dans une table de ta base de données ? tu peux l'interroger directement et récupérer les infos de celle-ci (normalement, tu y a rentré le type en clair) (un type énumération dans une base de donnée c'est pas vraiment l'idéal, il vaut une table avec un id et la désignation, c'est plus facile si on doit ajouter des entrées par la suite)

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Conversion d'un label en énumération C#

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown