DataGrid editierbar

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Marco.

    DataGrid editierbar

    Wie kann ich ein DataGrid im WPF editierbar machen?
    Jedesmal wenn ich auf ein Item ausm DataGrid doppelklicke, kommt der Fehler:
    "EditItem" ist für diese Ansicht nicht zulässig.


    Grüßle Marco

    Edit:
    Ich nehme stark an das dies die Lösung hätte sein können aber MSDN wollte wohl nicht so ganz
    msdn.microsoft.com/en-us/libra…llectionview_members.aspx

    aber eventuell das hier
    msdn.microsoft.com/query/dev10…ION%3dV4.0%22)&rd=true#Y0

    -.-

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Marco“ ()

    Wie gesagt es geht nicht.
    Es kommt immer noch dieser Fehler.

    XML-Quellcode

    1. <DataGrid AutoGenerateColumns="False" Margin="16,249,12,44" Name="Overview">
    2. <DataGrid.Columns>
    3. <DataGridTextColumn Header="Kundenname" Width="150" IsReadOnly="False" CanUserReorder="True" />
    4. <DataGridTextColumn Header="Projektname" Width="150" IsReadOnly="False" CanUserReorder="True"/>
    5. <DataGridTextColumn Header="Tätigkeit" Width="150" IsReadOnly="False" CanUserReorder="True"/>
    6. <DataGridTextColumn Header="Dauer" Width="150" IsReadOnly="False" CanUserReorder="True"/>
    7. <DataGridTextColumn Header="Bearbeiter" Width="150" IsReadOnly="False" CanUserReorder="True"/>
    8. </DataGrid.Columns>
    9. </DataGrid>


    Ach und wenn ich hardcode mit ....

    VB.NET-Quellcode

    1. EditItem = True
    setze kommt dann auch
    EditItem" ist ReadOnly.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Marco“ ()

    Wie kann ich dann meine Klasse in dem ListCollectionView übergeben?

    VB.NET-Quellcode

    1. Imports System.Xml
    2. Public Class DataGridQuelle
    3. Private kundenname As ArrayList = New ArrayList
    4. Private projektname As ArrayList = New ArrayList
    5. Private bearbeiter As String = My.User.Name
    6. Const xmlprojectpath As String = "C:\XML\Projekt.XML"
    7. Const xmlkundenpath As String = "C:\XML\Kunden.XML"
    8. Public Sub New()
    9. Dim xDocKunde As XmlDocument = New XmlDocument
    10. Dim xDocProjekt As XmlDocument = New XmlDocument
    11. Dim tmpkunde As String = My.Computer.FileSystem.ReadAllText(xmlkundenpath, System.Text.Encoding.UTF8)
    12. Dim tmpprojekte As String = My.Computer.FileSystem.ReadAllText(xmlprojectpath, System.Text.Encoding.UTF8)
    13. xDocKunde.LoadXml(tmpkunde)
    14. xDocProjekt.LoadXml(tmpprojekte)
    15. Dim kundenList As XmlNodeList = xDocKunde.GetElementsByTagName("Kunde")
    16. Dim proList As XmlNodeList = xDocProjekt.GetElementsByTagName("Name")
    17. Dim i As Integer
    18. Dim j As Integer
    19. For i = 0 To kundenList.Count - 1
    20. kundenname.Add(kundenList(i).Attributes.GetNamedItem("Name").InnerXml)
    21. Next i
    22. For j = 0 To proList.Count - 1
    23. projektname.Add(proList(j).InnerXml)
    24. Next j
    25. End Sub
    26. Public Sub New(ByRef kundenliste As XmlDocument, ByRef projektliste As XmlDocument)
    27. Dim kundenList As XmlNodeList = kundenliste.GetElementsByTagName("Kunde")
    28. Dim proList As XmlNodeList = projektliste.GetElementsByTagName("Name")
    29. Dim i As Integer
    30. Dim j As Integer
    31. For i = 0 To kundenList.Count - 1
    32. kundenname.Add(kundenList(i).Attributes.GetNamedItem("Name").InnerXml)
    33. Next i
    34. For j = 0 To proList.Count - 1
    35. projektname.Add(proList(j).InnerXml)
    36. Next j
    37. End Sub
    38. Public Property kunden() As ArrayList
    39. ' Abholen des Eigenschaftenwerts
    40. Get
    41. Return kundenname
    42. End Get
    43. ' Setzen des Eigenschaftenwerts
    44. Set(ByVal Value As ArrayList)
    45. kundenname.Add(Value)
    46. End Set
    47. End Property
    48. End Class


    Hierbei wird eine XML ausgelesen. Der Inhalt wird wiedergegeben in einer Combobox
    Was meinst du mit deine Klasse? "DataGridQuelle"?

    Die enthält nichts, woran man binden könnte.

    In Wpf braucht man DatenKlassen, und Auflistungen von Datenklassen.
    Eine typisierte DataRow ist z.B. eine Datenklasse, und an deren Spalten kann man binden.
    Und eine typisierte DataTable ist eine Auflistung von DataRows.

    Mehrere typisierte DataTables können in einem typisierten Dataset drinne sein, etwa eine Kunde-DataTable, und eine Projekt-DataTable.

    Das ganze Gesumse könnte man sehr einfach laden und speichern. (gelegentlich sage ichs ja: Xml ist Crap ;))
    Hmm ok ich werde das ganze mal anschauen mit ListCollectionView.
    Vielleicht kann ich das realisieren und meine Darstellung hinbekommen.

    Danke dir EDR (mal wieder :) )

    Grüßle Marco

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marco“ ()

    Kurz nochmal aufrufen, habe den falschen Weg gewählt glaube ich sry EDR

    Habe nun einen anderen Weg gefunden und will mich an diesen langsam herantasten...
    wollte

    VB.NET-Quellcode

    1. ListView1.Columns.Add("Überschrift")


    machen dann kommt aber das es kein Member von Windows.Forms ist.
    Was muss denn dann machen?

    bin in WPF...
    geht natürlich nicht so einfach...