tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
5800
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Trebjun Trebjun ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    18
    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
     

  2. #2
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    die Zeile musst du bei deiner Datenquelle hinzufügen.
    Am geeignetesten ist glaube BindingList
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  3. #3
    Trebjun Trebjun ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    18
    Hi Spyke,

    kannst Du das vielleicht genauer beschreiben? Kriege das nicht gebacken.
     

  4. #4
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    Hab mal schnell ein kleines Testprojekt für dich gemacht
    PHP-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 senderEventArgs 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 astring b)
        {
            
    this.a;
            
    this.b;
        }

        private 
    string a;
        public 
    string A
        
    {
            
    get { return a; }
            
    set 
            
    {
                if (
    != value)
                {
                    
    value;
                    
    OnPropertyChanged("A");
                }
            }
        }

        private 
    string b;
        public 
    string B
        
    {
            
    get { return b; }
            
    set 
            
    {
                if (
    != value)
                {
                    
    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(thise);
        }

        
    #endregion

    Schnittstelle INotifyPropertyChanged damit DataGrid Änderungen bei den Eigenschaften mitbekommt, funktioniert meineswissen nur in Verbindung mit BindingList

    Ansonsten müsste eigentlich alles selbsterklärend sein.
    Geändert von Spyke (07.02.08 um 20:33 Uhr)
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  5. #5
    Trebjun Trebjun ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    18
    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

  1. Textbox zu einem DataGridView hinzufügen vb.net 2005
    Von ronaldo84 im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 09.07.08, 16:54
  2. DataGridView Neue Zeile
    Von Hawkings im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 14.04.08, 14:56
  3. Gebundenes DatagridView Zeilen per Code hinzufügen
    Von pogoist im Forum .NET Datenverwaltung
    Antworten: 0
    Letzter Beitrag: 07.05.07, 16:22
  4. Neue Zeile in DataGridView
    Von DaSuckOOr im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 04.04.07, 07:49
  5. Zeile aus DataGridView lesen
    Von beso im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 10.12.06, 14:44