Bonjour,
je voudrais afficher dans l’entête et dans la cellule les valeurs d'une collection.
Dans ma collection j'ai des valeurs, les champs 'Name' et 'Value', je veux afficher 'Name' dans l'entete et 'Value' dans la colonne.
Je suis dans une application wpf mvvm.
Dans 'Users' j'ai bien une collection de 'User' avec ses données, mais à l'affichage je n'obtient aucune valeur, ni dans l'entête ni dans les colonnes.
LE code C# :
le code Xaml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private ObservableCollection<User> co_Users; /// <summary> /// Propriété UserFields /// </summary> public ObservableCollection<User> Users { get { return co_Users; } set { if (co_Users != value) { co_Users = value; RaisePropertyChanged(() => Users); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Users}"> <DataGridTextColumn Binding="{Binding Users[1].Value}" Header="{Binding Users[1].Name}" /> <DataGridTextColumn Binding="{Binding Users[2].Value}" Header="{Binding Users[2].Name}" /> <DataGridTextColumn Binding="{Binding Users[3].Value}" Header="{Binding Users[3].Name}" /> <DataGridTextColumn Binding="{Binding Users[4].Value}" Header="{Binding Users[4].Name}" /> <DataGridTextColumn Binding="{Binding Users[5].Value}" Header="{Binding Users[5].Name}" /> </DataGrid.Columns> </DataGrid>
[France] Profil pro
Inscrit en
septembre 2009
Messages
29
[Plus de détails...]
Points
18
Par défaut
j'ai essayé une autre méthode:
le code xaml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // la classe public class ColumnDescriptor { public string HeaderText { get; set; } public string DisplayMember { get; set; } } // mon viewmodel public ObservableCollection<ColumnDescriptor> Columns { get; private set; } this.Columns = new ObservableCollection<ColumnDescriptor>(); foreach (User item in Users) { Columns.Add(new ColumnDescriptor { HeaderText = item.Name, DisplayMember = "InputValue"}); }
Mais je n'obtient pas le résultat escompté , j'ai bien les entêtes, mais dans les cellules j'ai les collections de chaque User et non la valeur 'Value' attaché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <ListView ItemsSource="{Binding Users}"> <ListView.View> <GridView local:GridViewColumns.DisplayMemberMember="DisplayMember" local:GridViewColumns.HeaderTextMember="HeaderText" local:GridViewColumns.ColumnsSource="{Binding Columns}"> </GridView> </ListView.View> </ListView>
Merci d'avance pour votre aide
Partager