|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 201 ![]() |
Bonsoir ,
J'essaie de réaliser un datagrid avec deux boutons , l'un servant à ajouter une ligne et l'autre à capturer la ligne sélèctionnée pour la supprimer , mon problème se situe sur l'ajout à chaque fois , je n'arrive qu'ajouter des colonnes et non une ligne en appuyant sur le bouton ajout. J'avoue le datagrid est pas facile à comprendre. J'applique la fonction Add mais il ajouter que des ligne sur une colonne et pas une ligne , contenant les colonnes des entêtes, pourtant j'ai un datagrid et des entêtes. Merci pour tous conseils utiles. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Eric MetzDéveloppeur informatique Inscription : avril 2006 Messages : 573 ![]() |
Bonjour,
Si vous nous montriez votre code on pourrait mieux vous aider
__________________
Articles sur les technologies .NET Une réponse vous a aidé ? utiliser le bouton ![]() Votre problème est résolu ? utiliser le bouton
|
|
10
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : février 2006 Messages : 201 ![]() |
J'ai un DataGrid et deux boutons l'un ajouter une ligne et l'autre supprimer une ligne de ma DataGrid.
Code :
Bien sûr , j'ai créé chaque header de mon DataGrid avec le champ que je désire , en utilisant les propriétés J'ai essayé pleins de trucs mais le comportement d'un DataGrid est différent d'un Jtable... Merci |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Mickael Développeur .NET Inscription : novembre 2009 Messages : 729 ![]() |
Le binding "null" sur les DataGridTextColumn Binding="{x:Null}" , il sert à quoi?
Normalement il devrait être binder (mode TwoWay) sur une des propriétés d'un objet à afficher (une row). Il faut spécifier à la datagrid quelle ItemsSource utiliser, en l'occurence une ObservableCollection<TonObjet> va faire l'affaire. Ensuite sur l'evennement de ton bouton ajouter, il te suffit de faire ObservableCollection.Add(new TonObjet(NouvelleId)); Pour la suppression tu peux voir si tu ne peux pas caster le SelectedItem de la datagrid en TonObjet. Il suffit ensuite de faire ObservableCollection.Remove(l'objet). |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 201 ![]() |
Merci de ta réponse ,
En fait le binding null se met automatiquement , quand je crée mes noms de mes colonnes dans les propriétés de visual studio de la Datagrid. Est-ce que , ce que tu me dis permet à l'utilisateur d'avoir la possibilité d'insérer des données colonne par colonne ,une fois appuyé sur le bouton ajouté ? j'ai des comboBox , text , etc ? merci. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Mickael Développeur .NET Inscription : novembre 2009 Messages : 729 ![]() |
Je ne comprends pas la question
Voici un article qui détail pas mal la datagrid: http://www.codeproject.com/Articles/...tical-Examples |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 201 ![]() |
Cela me semble compliqué pour ce que je veux faire
Ce que je veux , c'est que quand un utilisateur clique sur le bouton ajout , une ligne s'insère dans ma datagrid avec les champs (comboxBox , etc par colonne spécifique ) et qu'il puisse rentrer les données , sélectionner dans un comboBox, etc) Actuellement , j'arrive à insérer une ligne mais je ne sais pas écrire des données dans chaque champ de mon datagrid et je n'ai pas de comboBox,checkBox etc alors que j'ai spécifié les header des colonnes pour qu'il puisse avoir des types différents que je veux par colonne. Mon datagrid ne doit pas être lié à une source de donnée ,parce que l'utilisateur doit ajouter lui-même les lignes et remplir les champs , puis après je les mets dans la base de donnée, à moins que j'ai pas bien compris l'intérêt du binding. Est-ce que ce que tu me dis plus haut correspond à ce que je veux ? , c'est un table avec ajout de ligne et remplir les colonnes. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Mickael Développeur .NET Inscription : novembre 2009 Messages : 729 ![]() |
Code :
ne doit pas être lié à une source de donnée L'objet correspondant à une row implémente-t-il bien INotifyPropertyChanged? Le binding est-il bien en TwoWay? Je ne connais pas le JTable, mais ca m'a l'air sacrément différent comme principe, et je pense que tu vas devoir saisir la nuance pour arriver à tes fins. |
|
|
10
|
|
|
#9 | |
|
Membre du Club
![]() Inscription : février 2006 Messages : 201 ![]() |
Merci pour tes réponses , je me demandais quel composant serait plus proche de mon utilisation entre le datagrid et le gridview ? et quelle est la différence entre les deux ? , je n'ai pas très bien compris.
Merci, si tu sais plus à ce sujet. Citation:
|
|
|
|
00
|
|
|
#10 | ||||
|
Membre Expert
![]() ![]() Eric MetzDéveloppeur informatique Inscription : avril 2006 Messages : 573 ![]() |
Quand tu effectues un binding entre un composant et une source de données, il est pratique de définir comment chacun sera mis à jour quand des modifications ont lieu d'un coté ou de l'autre. Plusieurs modes sont disponibles:
- OneWay qui consiste à mettre à jour automatiquement les données de la de la source de données vers la cible. - OneTime qui est identique au OneWay sauf qu'il va faire la mise à jour uniquement à l'initialisation des contrôles. - OneWayToSource qui inversement au OneWay met les données du contrôle vers la source de données. - TowWay qui effectue la mise à jour des données de la source vers le contrôle et inversement. Attention que dans tout ceci votre source de donnée peux être un autre composant. Il est par exemple possible de lié via Binding 2 listbox, ou un Textbox sur une colonne d'une ListView, etc. Exemple d'utilisation pour une listbox : Code :
Un petit exemple tiré du MSDN : Code :
__________________
Articles sur les technologies .NET Une réponse vous a aidé ? utiliser le bouton ![]() Votre problème est résolu ? utiliser le bouton
|
||||
|
00
|
Copyright © 2000-2013 - www.developpez.com