vb.net TreeView IComparer
Почему это не работает? Я нашел это на MSDN, но это бросает исключение:Unable to cast object of type 'OutlookTemplates.com.NodeSorter' to type 'System.Collections.IComparer'.
Public Class NodeSorter
Implements IComparer(Of Windows.Forms.TreeNode)
Public Function Compare(ByVal x As Windows.Forms.TreeNode, ByVal y As Windows.Forms.TreeNode) _
As Integer Implements IComparer(Of Windows.Forms.TreeNode).Compare
Dim tx As Windows.Forms.TreeNode = CType(x, Windows.Forms.TreeNode)
Dim ty As Windows.Forms.TreeNode = CType(y, Windows.Forms.TreeNode)
If tx.Text.Length <> ty.Text.Length Then
Return tx.Text.Length - ty.Text.Length
End If
Return String.Compare(tx.Text, ty.Text)
End Function
End Class
....
tv.TreeViewNodeSorter = New NodeSorter()
tv.Sort()
1 ответ
Решение
Вы должны реализовать неуниверсальный IComparer
интерфейс.
(так как TreeView
предшествует дженерикам)