Sotieren von Listview bei Click auf Column Header klappt noch nicht ganz...

  • WPF

    Sotieren von Listview bei Click auf Column Header klappt noch nicht ganz...

    Moin Leute,

    ich versuche mein Listview so zu verändern, dass es möglich ist, bei einem Klick auf den Header das Listview nach der Spalte zu sortieren.
    Als Beispiel hierfür, habe ich diesen Link herbei gezogen:
    msdn.microsoft.com/de-de/library/ms745786(v=vs.110).aspx

    Nun sieh es bei mir wie folgt aus:

    VB.NET-Quellcode

    1. Public Sub New()
    2. InitializeComponent()
    3. End Sub
    4. Private _lastHeaderClicked As GridViewColumnHeader = Nothing
    5. Private _lastDirection As ListSortDirection = ListSortDirection.Ascending
    6. Private Sub GridViewColumnHeaderClickedHandler(ByVal sender As Object, ByVal e As RoutedEventArgs)
    7. Dim headerClicked As GridViewColumnHeader = TryCast(e.OriginalSource, GridViewColumnHeader)
    8. Dim direction As ListSortDirection
    9. If headerClicked IsNot Nothing Then
    10. If headerClicked.Role <> GridViewColumnHeaderRole.Padding Then
    11. If headerClicked IsNot _lastHeaderClicked Then
    12. direction = ListSortDirection.Ascending
    13. Else
    14. If _lastDirection = ListSortDirection.Ascending Then
    15. direction = ListSortDirection.Descending
    16. Else
    17. direction = ListSortDirection.Ascending
    18. End If
    19. End If
    20. Dim header As String = TryCast(headerClicked.Column.Header, String)
    21. Sort(header, direction)
    22. If direction = ListSortDirection.Ascending Then
    23. headerClicked.Column.HeaderTemplate = TryCast(Resources("HeaderTemplateArrowUp"), DataTemplate)
    24. Else
    25. headerClicked.Column.HeaderTemplate = TryCast(Resources("HeaderTemplateArrowDown"), DataTemplate)
    26. End If
    27. ' Remove arrow from previously sorted header
    28. If _lastHeaderClicked IsNot Nothing AndAlso _lastHeaderClicked IsNot headerClicked Then
    29. _lastHeaderClicked.Column.HeaderTemplate = Nothing
    30. End If
    31. _lastHeaderClicked = headerClicked
    32. _lastDirection = direction
    33. End If
    34. End If
    35. End Sub
    36. Private Sub Sort(ByVal sortBy As String, ByVal direction As ListSortDirection)
    37. Dim dataView As ICollectionView = CollectionViewSource.GetDefaultView(TerminList.ItemsSource)
    38. dataView.SortDescriptions.Clear()
    39. Dim sd As New SortDescription(sortBy, direction)
    40. dataView.SortDescriptions.Add(sd)
    41. dataView.Refresh()
    42. End Sub


    Jedoch bekomme ich an folgender Stelle eine Null-Reference-Exception:

    VB.NET-Quellcode

    1. dataView.SortDescriptions.Clear()


    Hat jemand eine Idee woran das liegen kann?
    In einem Separaten Beispiel Projekt hat es noch geklappt. ?(

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