Charger un enum dans une listView [Résolu/Fermé]

Signaler
Messages postés
139
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 juin 2020
-
Messages postés
14462
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
4 juillet 2020
-
Bonjour,

Je suis débutante et je cherche à faire une application en WPF. Je veux plus exactement charger les éléments de mon enum dans une listView, cependant quand mon code provoque des erreurs de build et je ne voit pas d'où ça vient ...

Pourriez-vous m'aider s'il-vous-plaît ?

Code XAML

            <ListView ItemsSource="{Binding Genre}">
                <ListView.ItemTemplate>
                    <DataTemplate x:Name="DoubleLineDataTemplate" DataType="local:Recording">
                        <StackPanel Orientation="Horizontal" Height="64">
                            <Ellipse Height="48" Width="48" VerticalAlignment="Center">
                                <Ellipse.Fill>
                                    <ImageBrush ImageSource="Medias/Photos/Genre_horreur.jpg"/>
                                </Ellipse.Fill>
                            </Ellipse>
                            <StackPanel Orientation="Vertical" VerticalAlignment="Center" Margin="12,0,0,0">
                                <TextBlock Text="Horreur"  Foreground="Black" />
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>



Code C#
namespace WpfApp5.Classes
{
    enum Genre
    {
            Fantastique,
            Dramatique,
            Aventure,
            Thriller,
            Comique,
            Horreur,
            Policier,
            Action,
            Fiction,
            Anime,
        }
    }

Merci d'avance.
Cordialement.

2 réponses

Messages postés
3603
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 juillet 2020
957
Bonjour,

Le problème est que Genre est un type, et non pas une collection.
Il faudrait que tu crées une collection de <Genre>, qui les contienne tous (il doit être possible de créer une fonction qui calcule toute seule une telle collection, en jouant avec typeof(Genre).GetFields... mais je n'ai pas ce qu'il faut sous la main pour te donner le code exact.) :
public List<Genre> genres = new List<Genre>
{
    Genre.Fantastique,
    Genre.Dramatique,
...
}

Et cette liste que tu bindes dans ta ListView.

Xavier
Messages postés
139
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
28 juin 2020

Merci de votre aide =)
Messages postés
14462
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
4 juillet 2020
553
Bonjour

pour un combobox, j'utilise le code décrit ici https://stackoverflow.com/questions/58743/databinding-an-enum-property-to-a-combobox-in-wpf
Ça doit s'adapter à une listview