DataGridView lié à Linq to SQL n'affiche pas les nouvelles lignes ajoutées ailleurs au contexte de la base de données

StackOverflow https://stackoverflow.com/questions/815043

  •  03-07-2019
  •  | 
  •  

Question

j'ai un DataGridView lié à une expression de requête LINQ to SQL.Je souhaite qu'il soit modifiable pour les mises à jour, mais pour les insertions, je souhaite que les utilisateurs utilisent des contrôles séparés sous la grille (zones de texte, sélecteurs de date, etc. - actuellement non liés à quoi que ce soit).J'ai un bouton "Ajouter" qui crée un objet de la classe d'entité Linq to SQL en fonction des valeurs des contrôles, puis appelle InsertOnSubmit().Quand j'appelle plus tard SubmitChanges(), toutes les mises à jour de la grille et tous les objets ajoutés sont tous correctement conservés dans la base de données.

Mon problème est qu'aucun nouvel objet n'est ajouté à la grille, avant ou après l'appel à SubmitChanges().J'aimerais que de nouveaux objets soient ajoutés à la grille dès leur création.De plus, je souhaite uniquement que les contrôles situés sous la grille soient utilisés pour insérer de nouveaux enregistrements, et non pour modifier les enregistrements existants, donc je ne pense pas qu'ils devraient être liés à la source de données... Quelle est la meilleure façon d'y parvenir ?

J'ai simplement essayé de réinitialiser le DataSource pour la grille (c'est-à-dire dataGridView.DataSource = db.<TableName>, qui fonctionne, mais est maladroit car il défile à nouveau vers le haut de la grille - je suis sûr qu'il existe une meilleure méthode.

(Veuillez excuser la question n00b, je suis très nouveau dans tout ça .net :P)

Était-ce utile?

La solution

La première chose à essayer est GetNewBindingList(), mais ce fil :"Exemple de code datagridview modifiable canonique Linq-SQL" a quelques réflexions pour d'autres scénarios.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top