Ich arbeite an einer Desktop-Anwendung in C# (.NET 4.0). Ich habe eine Datagridview mit benutzerdefinierten Objekten gefüllt, über benutzerdefinierte (es erbt BindingList) BindingList (hinzugefügt Sortierfunktionalitäten). Ich verwende cellValidating-Ereignisse, um die erste Spalte (ID) richtig zu inkrementieren und die Eingabe in andere Zellen zu validieren.
Das Problem ist, wenn ich auf die neue Zeile / letzte Zeile und geben Sie etwas in eine Zelle (ich kann sogar alle Eingaben vor dem Verlassen der Zelle zu löschen) die datagridview fügt automatisch diese Zeile zu verbindlichen Liste und erstellt eine neue Zeile unten. Ich möchte, dass die letzte / neue Zeile nur hinzugefügt wird, wenn die Zeile oben (vorherige neue Zeile) richtig gefüllt ist.
Beispiel
ID NAME PRICE ...
1 Beer 2.6
2 Cheese 3.3
_ _______ ____ <- empty row
Wenn ich jetzt klicke (Enter), wird die neue Zeilenkennung automatisch auf 3 gesetzt, und wenn ich auf die Zelle "Beer" klicke, ist die neue Zeilenkennung leer und alle Standardwerte sind leer (so sollte es auch funktionieren). Das Problem ist, wenn ich auf die neue Zeile klicke und etwas für den Namen eingebe (und auch wenn ich den Inhalt lösche, bevor ich die Zelle verlasse), wird eine neue Zeile unter dieser Zeile hinzugefügt, die die neue Zeile war. So wird diese Zeile zu BindingList hinzugefügt und ist unvollständig, es sollte nicht hinzugefügt werden, bis alle erforderlichen Zellen richtig gefüllt sind (zum Beispiel Preis).
Ich habe keine Ahnung, wie man das macht. Bitte helfen Sie mir aus, ich bin ganz neu in C#.
Ich danke Ihnen für Ihre Zeit und Ihre Antworten.