2013-09-13 3 views
1

Почему, почему это не работает? Я нашел его на MSDN Butit бросает исключение: Unable to cast object of type 'OutlookTemplates.com.NodeSorter' to type 'System.Collections.IComparer'.vb.net TreeView 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() 

ответ

3

Вам нужно реализовать необщегоIComparer интерфейс в .
(т.к. TreeView предшествует дженерикам)

Смежные вопросы