WPF DataGrid Zeile fügen Sie in der codebehind -
Ich bin von VB.Net WinForms kommen. Jetzt wollte ich schreiben, eine kleine Anwendung in WPF, die Auflistung bestimmter Dateien in einem datagridview. Ich verwendet WPF DataGrid erstellt, einige Spalten. Und dann nicht auf meine Zeilen.
Bitte, können Sie mir helfen zu wählen Sie den richtigen Weg, um meine Dateinamen, Status-text und thumbnails Hinzugefügt, um die DataGrid-Zeile?
In VB.Net WinForms kann ich fügen Sie eine Zeile wie diese:
Datagridview1.Rows.add(Myvalue, "RowStateText", "Hello World", MyDate)
In WPF DataGrid kann ich hinzufügen
DataGrid1.Items.Add(New DataGridRow())
Aber wie fülle ich meine DataGridRow?
Private Sub AddFilesAndFolders(ByVal Base As IO.DirectoryInfo, ByRef dgv As DataGrid)
'For Each di As IO.DirectoryInfo In Base.GetDirectories
' Call AddFilesAndFolders(di, dgv)
'Next
Dim item As DataGridRow
For Each fi As IO.FileInfo In Base.GetFiles
item = New DataGridRow'<-- test 1 (row is added but empty)
Dim di As New MyFileInfo'<-- test 2 (my own class with public members, but how to add as row with declared columns?)
di.FileName = fi.FullName
di.FileDate = fi.LastAccessTime
item.Item = fi.FullName
dgv.Items.Add(di)
Next
End Sub
- Ok. Jetzt habe ich entschieden, um den aktuellen Stand des Projektes zum download: goldengel.ch/temp/FileContent%20Replacer.zip
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hallo: Sie sollten eine ItemsSource-anstatt die Elemente manuell. Wenn die Spalten korrekt eingerichtet sind, dann wird es nur "Arbeit"!
oder
Wenn du mehr Probleme, poste bitte wieder hier.
Edit: auf der zweiten Inspektion wie es aussieht, möchten Sie vielleicht, es zu tun rekursiv. In dem Fall, dass Ihre
AddFilesAndFolders
könnte stattdessen seinCreateFilesAndFolders
, was wieder eine Sammlung von FileInfo/MyFileInfo Objekte, verschmolzen mit den Kollektionen produziert, die von den untergeordneten Ordner rekursiv; dann binden Sie die gesamte Liste zurückgegeben, die von der ersten Aufforderung an den Start.Hoffe, das hilft!
WPF ist eine Einstellung ändern, müssen Sie, um Weg von der Winforms Weg zu denken.
Letztlich müssen Sie die ItemsSource", um eine IEnumerable-Schnittstelle, vorzugsweise eine ObservableCollection.
Die Schnellste Möglichkeit zum Einstieg wäre die ObservableCollection als öffentlicher Eigenschaft in der code-behind-Datei:
Dann in den Konstruktor oder eine Load-Ereignis auf dem Fenster, füllen Sie die Sammlung mit Ihren Daten aus und fügen Sie der Xaml-Deklaration für die DataGrid:
EDIT:
Habe ich versucht, diese mit der DirectoryInfo-Klasse in meinen code hinter fügte ich hinzu:
Aus irgendeinem Grund war dies nicht die Arbeit mit dem Databinding über Xaml, aber ich habe nicht versucht sehr hart, um es zu arbeiten.