avez-vous utilisé le RAD-Databind (DataSource sur vos winforms)? Si c'est le cas, cela pourrait être un peu difficile. Vous devez charger les données dans un calque séparé (pas dans le code-behind si vous pouvez l'aider). Ensuite, il devrait être plutôt simple d'ajouter une autre ligne dans vos données locales.
Comme vous l'avez demandé: voici un exemple très simple. J'utilise les mêmes données génériques:
public struct SimpleData
{
public int Id { get; set; }
public string Text { get; set; }
}
et initialiser un DataGridView nommé GridView via:
var bindingSource = new BindingSource();
bindingSource.Add(new SimpleData {Id = 1, Text = "Hello"});
bindingSource.Add(new SimpleData {Id = 2, Text = "World"});
GridView.DataSource = bindingSource;
vous pouvez ajouter une autre ligne simplement en
var data = GridView.DataSource as BindingSource;
data.Add(new SimpleData{Id=3, Text="!!! added"});
Dans un exemple du monde réel I utiliserait un modèle bien connu: MVVM for Winforms ou MVP for Winforms séparer la vue de la logique. Mais après tout, le bit important utilise une sorte de Bindingsource (qui informe la Grid que les données ont changé) ou réassigne les données modifiées au DataSource si vous choisissez d'utiliser un datacontain peu profond/simple comme List ou similaire.
Merci pour votre réponse. Avez-vous un code d'exemple? – user609511
BTW: dans mon code, je la logique "connaît" la vue - normalement, vous ne voulez pas cela, il suffit de le lire comme une démo. Dans le * MVVM-pattern * mentionné ci-dessus, vous exposeriez BindingSource dans votre ViewModel et la vue (peut-être dans votre code-behind) se lierait à ceci. – Carsten
Merci pour votre réponse. J'ai oublié de vous dire que j'utilise 3Layer. DAL (INSERT INTO ... UPDATE ...). BAL, et Voir. Comment puis-je récupérer la valeur de chaque nouvelle ligne ou ligne CHANGE pour la connecter à mon DAL? – user609511