Bonjour à tous.
Dans le cadre d'un projet scolaire, je suis en train de développer une couche d'accès aux données d'une BDD SQLServer.
Pour les tests, j'ai une application WPF qui se contente d'afficher les données dans des DataGrid.
Donc jusqu'à présent, je sais récupérer les données de ma base sans soucis, et l'affichage se fait sans problèmes.
Par contre, je coince quand il s'agit de mettre a jour des données...
En fait, j'aimerais que quand on ajoute une ligne dans la DataGrid, ou qu'une donnée est modifiée (toujours dans la DataGrid) cette donnée soit ajoutée/mise à jour dans la base de données également...
Voici donc ce que j'ai jusque maintenant :
La récupération des données (dans ma fenêtre WPF) :
Où GridNews est la DataGrid.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 DAL dal = new DAL(); ICollectionView cvNews; ObservableCollection<New> newsList; // News list loading newsList = dal.getNewsList(); cvNews = CollectionViewSource.GetDefaultView(newsList); this.GridNews.ItemsSource = cvNews;
Et la couche d'accès aux données (DAL) :
Après recherches, j'ai tenté d'utiliser les Events CollectionChanged et PropertyChanged de DataGrid pour mettre a jour la BDD dès qu'une donnée est ajoutée/modifiée, mais sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Method returns the list of News in the DB public ObservableCollection<New> getNewsList() { ObservableCollection<New> ne; DataClassesDataContext db = new DataClassesDataContext(); var News = from n in db.News select n; ne = new ObservableCollection<New>(News); return ne; }
Je me suis heurté au fait que l'event CollectionChanged est lancé dès qu'une nouvelle ligne est ajoutée, sans que je n'aie le temps de remplir les champs...
Pour les opérations d'ajout/modification dans la BDD j'ai trouvé quelques trucs sur le net, mais sans succès...
Quelqu'un aurait une petite idée de comment faire ?
Merci d'avance !
Partager