IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

WPF binding collection dans header et colonne dans un datagrid


Sujet :

Dotnet

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 22
    Points
    22
    Par défaut WPF binding collection dans header et colonne dans un datagrid
    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
     
    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
     
    <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>

    Merci d'avance pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    je suis passé aussi par une classe intermédiaire :

    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
     
    // 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
     
    <ListView ItemsSource="{Binding Users}">
    	<ListView.View>
    		<GridView  local:GridViewColumns.DisplayMemberMember="DisplayMember"
    						                local:GridViewColumns.HeaderTextMember="HeaderText" local:GridViewColumns.ColumnsSource="{Binding Columns}">
    		</GridView>
    	</ListView.View>
    </ListView>
    j'ai bien les entêtes, mais dans les cellules j'ai les collections de chaque User et non la valeur 'Value' attaché.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/07/2014, 14h06
  2. [MVVM] Binding d'un nom de colonne dans un datagrid
    Par Oberown dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 21/08/2012, 14h04
  3. Chercher un mot d'une colonne dans une autre colonne
    Par agur29 dans le forum Réplications
    Réponses: 6
    Dernier message: 17/12/2008, 16h52
  4. verifier les valeurs d'une colonne dans une autre colonne
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/04/2008, 20h24
  5. Colonnes dans le WHERE donc dans le SELECT ?
    Par nicoreims dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/08/2006, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo