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# :
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);
				}
			}
		}
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
 
 
<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:
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"});
			}
le code xaml :
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>
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é.

Merci d'avance pour votre aide