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

Windows Presentation Foundation Discussion :

Binding avec une Datagrid


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de cyberbobby
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut Binding avec une Datagrid
    Bonjour,

    J'ai un petit problème très simple.

    J'ai une DataGrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <toolkit:DataGrid x:Name="DGBacs" Grid.Row="3" Grid.Column="1" AutoGenerateColumns="True" ..../>
    Dans mon code behind, j'ai une liste :

    List<Bac> LBac;

    J'ai un formulaire qui permet d'ajouter des items dans ma liste.

    J'aimerais simplement Binder ma DataGrid avec ma liste et que lorsque l'on édite la datagrid, ma liste se mette à jour mais je trouve plus trop comment on fait.

    Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Crée une propriété ObservableCollection<Bac> plutôt qu'une variable List<Bac>. Ça c'est pour la mise à jour et il faut noter que pour le binding il faut une propriété
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    ObservableCollection<Bac> ObsBac { get; set; }

    Ensuite, il faut binder cette ObservableCollection à la propriété ItemsSource du DataGrid.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <toolkit:DataGrid x:Name="DGBacs" Grid.Row="3" Grid.Column="1" AutoGenerateColumns="True" ItemsSource="{Binding ObsBac}" />

    Cela marchera si dans le constructeur de ta vue, tu as défini le DataContext ainsi :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DataContext = ObsBac;

  3. #3
    Membre confirmé Avatar de cyberbobby
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Quand je mets l'ObservableCollection en propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur	1	Accessibilité incohérente*: le type de propriété 'System.Collections.ObjectModel.ObservableCollection<WPFScanner.Bac>' est moins accessible que la propriété 'WPFScanner.Window1.ObsBac'	C:\Documents and Settings\Bobby\Mes documents\Visual Studio 2008\Projects\WPFScanner\WPFScanner\Window1.xaml.cs	22	42	WPFScanner

  4. #4
    Membre confirmé Avatar de cyberbobby
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    C'est bon, oubliez le message précédent ...

    Par contre mon binding ne se fait toujours pas:

    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
     
    public partial class Window1 : Window
        {
            public ObservableCollection<Bac> ObsBac { get; set; }
     
            public Window1()
            {
                InitializeComponent();
                ObsBac = new ObservableCollection<Bac>();
                this.DataContext = ObsBac;
            }
     
            private void BAjouter_Click(object sender, RoutedEventArgs e)
            {
                //Excell.Ecrire();
                ObsBac.Add(new Bac(TBNumBac.Text,TBProduitEAN.Text,TBNumPalette.Text,TBDLC.DisplayDate));
            }
        }
    et du coté du XAML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            <toolkit:DataGrid x:Name="DGBacs" Grid.Row="3" Grid.Column="1" AutoGenerateColumns="True" ItemsSource="{Binding ObsBac}"/>
    Lorsque j'ajoute un élément via le bouton Ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void BAjouter_Click(object sender, RoutedEventArgs e)
            {
                //Excell.Ecrire();
                ObsBac.Add(new Bac(TBNumBac.Text,TBProduitEAN.Text,TBNumPalette.Text,TBDLC.DisplayDate));
            }
    Ma DataGrid reste vide ...

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Autant pour moi, c'est moi qui t'es dit une bétise

    Il faut mettre :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DataContext = this;

    ou alors dans le xaml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <toolkit:DataGrid x:Name="DGBacs" Grid.Row="3" Grid.Column="1" AutoGenerateColumns="True" ItemsSource="{Binding }"/>

  6. #6
    Membre confirmé Avatar de cyberbobby
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Ok, ca marche nickel, un grand merci ! :-)

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

Discussions similaires

  1. Binding avec une fonction code behind
    Par GoelandIE dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/08/2009, 21h35
  2. Probleme de binding avec une observableCollection
    Par Yogy dans le forum Silverlight
    Réponses: 4
    Dernier message: 10/06/2009, 17h50
  3. probleme bind avec une séquence
    Par guitariste dans le forum JavaFX
    Réponses: 3
    Dernier message: 28/05/2009, 23h24
  4. Data Binding avec une donnée
    Par vinlap dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 23/05/2009, 13h48
  5. [C#] Pb avec une DataGrid remplie dynamiquement
    Par maxo dans le forum ASP.NET
    Réponses: 15
    Dernier message: 20/04/2005, 17h09

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