none
DataRow an TextBox binden RRS feed

  • Frage

  • Hallo,

    ich will eine DataRow an TextBoxen binden.

    DataRow row = datatable.Rows[0];

    code.DataBindings.Add("Text", row["code"], nullfalseDataSourceUpdateMode.OnPropertyChanged);

    Wenn ich nun etwas ändere, und die DataRow wieder anschaue, ist die RowState immer noch unchanged.

    Was mache ich falsch?

    Gruss,

    Chris

    Montag, 18. Februar 2013 13:48

Antworten

  • Hallo Chris,

    die Datenbindung funktioniert nur über die DataView, die wiederum auf der DataTable basiert - ggf. gefiltert bis auf eine Zeile.

    Erst die DataView stellt die notwendigen Schnittstellen bereit. Die jeweilige Zeile ergibt sich aus der Bindung. Damit man darüber bessere Kontrolle hat, bietet es sich an eine BindingSource zu verwenden.

    // Datenquelle (ggf. als Klassenvariable oder auch Komponente)
    BindingSource dataSource = new BindingSource(table, "");
    // bindet eine TextBox an die Datenquelle und deren Spalte Code
    codeTextBox.DataBindings.Add("Text", dataSource, "Code");
    
    Gruß Elmar

    • Als Antwort markiert chrisachern Dienstag, 19. Februar 2013 07:31
    Montag, 18. Februar 2013 15:42
    Beantworter

Alle Antworten

  • Hallo Chris,

    die Datenbindung funktioniert nur über die DataView, die wiederum auf der DataTable basiert - ggf. gefiltert bis auf eine Zeile.

    Erst die DataView stellt die notwendigen Schnittstellen bereit. Die jeweilige Zeile ergibt sich aus der Bindung. Damit man darüber bessere Kontrolle hat, bietet es sich an eine BindingSource zu verwenden.

    // Datenquelle (ggf. als Klassenvariable oder auch Komponente)
    BindingSource dataSource = new BindingSource(table, "");
    // bindet eine TextBox an die Datenquelle und deren Spalte Code
    codeTextBox.DataBindings.Add("Text", dataSource, "Code");
    
    Gruß Elmar

    • Als Antwort markiert chrisachern Dienstag, 19. Februar 2013 07:31
    Montag, 18. Februar 2013 15:42
    Beantworter
  • Vielen Dank. Hat so geklappt.

    Gruß,

    Chris

    Dienstag, 19. Februar 2013 07:34