Announcement

Collapse
No announcement yet.

DataGrid WPF nach DataTable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataGrid WPF nach DataTable

    Hallo zusammen,

    ich habe in WPF ein DataGrid namens dataGrid2.

    Ich möchte das gesamte DataGrid in ein DataTable ( dt ) überführen / konvertieren, um dann in der Lage zu sein das Table nach Excel zu schreiben bzw. ein anderes DataGrid damit zu füllen.
    Mein Problem ist, dass sowohl in Excel als auch in dem aus dt gefülltem DataGrid zwar die Spaltennamen alle korrekt übertragen werden, aber jede Zeile des dataGrid2 ( Item ) komplett in die Zelle der ersten Spalte geschrieben wird und die anderen Zellen unter den restlichen Spalten leer bleiben.

    Kann mir jemand vielleicht sagen, was ich im unteren Code ändern muss, damit mein dataGRid2 korrekt geclont wird?

    For i As Integer = 0 To dataGrid2.Columns.Count - 1
    If dataGrid2.Columns(i).Visibility = System.Windows.Visibility.Visible Then
    dt.Columns.Add(dataGrid2.Columns(i).Header.ToStrin g())
    End If
    Next

    Dim myString As String

    For index = 0 To dataGrid2.Items.Count - 24 'Step 1
    For g = 0 To dataGrid2.Columns.Count - 1
    Dim firstRow As DataGridRow = TryCast(dataGrid2.ItemContainerGenerator.Container FromIndex(index), DataGridRow)
    If Not firstRow Is Nothing Then
    Dim cell As Controls.DataGridCell = TryCast(dataGrid2.Columns(g).GetCellContent(firstR ow).Parent, Controls.DataGridCell)
    myString = TryCast(cell.Content, TextBlock).Text
    listBox1.Items.Add(myString)
    End If
    Next

    For z = 0 To listBox1.Items.Count - 1
    If z = 0 Then
    myString = listBox1.Items.Item(z)
    myStringArr = myString & ","
    row3 = {myStringArr}
    ElseIf z > 0 Then
    If z < listBox1.Items.Count - 1 Then
    myString = listBox1.Items.Item(z)
    myStringArr = myStringArr & myString & ","
    row3 = {myStringArr}
    End If
    ElseIf z = listBox1.Items.Count - 0 Then

    myString = listBox1.Items.Item(z)
    myStringArr = myStringArr & myString
    row3 = {myStringArr}
    End If

    Next
    dt.Rows.Add(row3)
    listBox1.Items.Clear()
    Next

    Dim dsDataset2 As DataSet = New DataSet()
    dsDataset2.Tables.Add(dt)
    dataGrid4.ItemsSource = dsDataset2.Tables(0).DefaultView

    Danke und Grüße


Working...
X