DataGridView - DataBinding - Refresh

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    DataGridView - DataBinding - Refresh

    Hi,

    ich habe eine DataGridview, die eine FileListe darstellt. Die DataGridView wird über DataBinding an eine DataSource befüllt.

    Nun rename ich einen File. Dann muss der Name natürlich über die DataSource angepasst werden:

    VB.NET-Quellcode

    1. Dim rwFile = DirectCast(DirectCast(FileListBindingSource.Current, DataRowView).Row, FileListRow)
    2. rwFile.RealFileName = RealNewfileName
    3. rwFile.DisplayFileName = NewFileName


    Das klappt soweit auch.

    Allerding instanziere ich die Form, welche die DataGridView enthält bedarfsweise ZWEIMAL ! Und die zweite Form kann u.U. die gleiche FileListe anzeigen. Diese zweite Form bleibt aber durch die obigen Anweisungen unverändert ... d.h. der alte FileName wird nach wie vor angezeigt. Auch ein Click auf die DatagridView der zweiten Form oder ein Sort ändern den angezeigten Namen nicht ...

    Wie kann ich denn erreichen, dass die DataGridView der zweiten Form aktualisiert wird?

    LG
    Peter

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Peter329“ ()

    Also jetzt versuche ich das erst mal für EINE Tabelle "ListDts.FileList".

    Wenn ich das richtig verstehe, soll die Lösung so aussehen, dass ich eine Hilfstabelle "Dataset1" modelliere, die das gleiche Layout wie FileList hat. Und dann sichere ich die FileList nach Dataset1 und restauriere sie nach folgendem Muster:

    VB.NET-Quellcode

    1. Dim _Datafile As New FileInfo("Dataset1.xml")
    2. ListDts.FileList.Clear()
    3. If _Datafile.Exists Then DataSet1.ReadXml(_Datafile.FullName)
    4. Me.Validate()
    5. DataSet1.WriteXml(_Datafile.FullName)


    Habe ich das richtig verstanden? Wie soll das denn die FileList Tabelle updaten?
    Jetzt hab ich das kapiert ...

    VB.NET-Quellcode

    1. FormB.FileListBindingSource.DataSource = Me.ListDts
    2. FormB.Show()


    Ich hatte lange nach Methoden gesucht, die einen "Refresh" durchführen. Das mit dem "Umstöpseln" wäre mir nie in den Sinn gekommen.

    Eine Zeile Code und man hat den ganzen Schmonzes mit der Synchronisation der beiden DataGridViews vom Hals. Genial !

    Herzlichen Dank! Das war's was ich wissen wollte! :)