ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
5800
5800
EMPFEHLEN
-
Hallo,
ich habe folgendes Problem:
in meiner Anwendung habe ich ein datagridview, was ich erst zur Laufzeit an eine Datenquelle binde. Nun möchte ich, dass der Anwender neue Datensätze im gridview hinzufügen kann. Doch durch die Datenbindung zur Laufzeit habe ich unten nicht die leere Zeile mit dem *, wo man automatisch eine Zeile hinzufügen kann, daher wollte ich mit datagridview.Rows.Add(); eine neue Zeile hinzufügen. Aber dann kommt diese Fehlermeldung:
"Zeilen können nicht automatisch zur Zeilenauflistung der DataGridView hinzugefügt werden, wenn das Steuerelement datengebunden ist."
Jetzt habe ich versucht, die Datenbindung zu lösen und dann die Zeile hinzufügen aber das
gelingt mir irgendwie auch nicht.
Hat jemand vielleicht eine Idee, wie ich das Problem lösen kann?
Danke!
Gruss,
Trebjun
-
die Zeile musst du bei deiner Datenquelle hinzufügen.
Am geeignetesten ist glaube BindingList
-
Hi Spyke,
kannst Du das vielleicht genauer beschreiben? Kriege das nicht gebacken.
-
Hab mal schnell ein kleines Testprojekt für dich gemacht
Schnittstelle INotifyPropertyChanged damit DataGrid Änderungen bei den Eigenschaften mitbekommt, funktioniert meineswissen nur in Verbindung mit BindingListPHP-Code:public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
list.Add(new Test("hallo", "du"));
list.Add(new Test("irgendwas", "anderes"));
list.Add(new Test("sinnlos", "Text"));
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
testBindingSource.DataSource = list; //testBindingSource vom Typ BindingSource, dataGrid hält als DataSource testBindingSource
}
private void button1_Click(object sender, EventArgs e)
{
list.Add(new Test("neue", "")); //hier wird neue Zeile der BindingList hinzugefügt und automatisch im DataGrid angezeigt
}
BindingList<Test> list = new BindingList<Test>();
}
internal class Test:INotifyPropertyChanged
{
public Test(string a, string b)
{
this.a = a;
this.b = b;
}
private string a;
public string A
{
get { return a; }
set
{
if (a != value)
{
a = value;
OnPropertyChanged("A");
}
}
}
private string b;
public string B
{
get { return b; }
set
{
if (b != value)
{
b = value;
OnPropertyChanged("B");
}
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
#endregion
}
Ansonsten müsste eigentlich alles selbsterklärend sein.Geändert von Spyke (07.02.08 um 20:33 Uhr)
-
Hey Spyke,
erstmal vielen Dank für die Mühe, die Du Dir gemacht hast! Habe das mal ausprobiert, ist aber irgendwie nicht ganz das was ich gesucht habe. Ich hab das Problem jetzt umgegangen und anders gelöst. Trotzdem aber nochmals vielen Dank!
Beste Grüsse,
Guido
Ähnliche Themen
-
Textbox zu einem DataGridView hinzufügen vb.net 2005
Von ronaldo84 im Forum .NET Windows FormsAntworten: 4Letzter Beitrag: 09.07.08, 16:54 -
DataGridView Neue Zeile
Von Hawkings im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 14.04.08, 14:56 -
Gebundenes DatagridView Zeilen per Code hinzufügen
Von pogoist im Forum .NET DatenverwaltungAntworten: 0Letzter Beitrag: 07.05.07, 16:22 -
Neue Zeile in DataGridView
Von DaSuckOOr im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 04.04.07, 07:49 -
Zeile aus DataGridView lesen
Von beso im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 10.12.06, 14:44





Zitieren
Login





