Не удается получить имена папок электронной почты с использованием IMAPX

Я использую этот код, чтобы получить список папок электронной почты:

Class emailFolder
    Public Property Title As String
End Class

Public Shared Function GetFolders() As List(Of emailFolder)
    Dim folder = New List(Of emailFolder)
    Dim foldername = client.Folders
    For Each parentFolder In foldername
        Dim parentPath = parentFolder.Path
        If parentFolder.HasChildren Then
            Dim subfolders = parentFolder.SubFolders
            For Each subfolder In subfolders
                Dim subPath = subfolder.Path
                folder.Add(New emailFolder With {.Title = parentFolder.Name})
            Next
        End If
    Next
    Return folder
End Function

Public sub btn_click handles Button1.click

ListView.ItemSource=GetFolders 

Я не знаю, что не так с моим кодом, но элементы, которые я получаю в ListView (Я кстати в wpf) выглядит так:

 MyApplication++emailfolder
 MyApplication++emailfolder
 MyApplication++emailfolder
 MyApplication++emailfolder

Что я делаю неправильно?

2 ответа

Решение

Проблема была решена.. Спасибо за комментарии, ребята!

Просто пришлось переопределить ToString.... Полный код:

   Class emailFolder
    Public Property Title As String
   Public Overrides Function ToString() As String
            Return Me.Title
        End Function
End Class

  Public Shared Function GetFolders() As List(Of emailFolder)
    Dim folder = New List(Of emailFolder)
    Dim foldername = client.Folders
    For Each parentFolder In foldername
        Dim parentPath = parentFolder.Path
        If parentFolder.HasChildren Then
            Dim subfolders = parentFolder.SubFolders
            For Each subfolder In subfolders
                Dim subPath = subfolder.Path
                folder.Add(New emailFolder With {.Title = parentFolder.Name})
            Next
        End If
    Next
    Return folder
End Function

Public sub btn_click handles Button1.click

ListView.ItemSource=GetFolders 

Если вы определите ItemTemplate из ListView, вы можете определить, как ListViewItems должен выглядеть.

В следующем примере только содержание свойства Title будет отображаться:

<ListView>
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Title}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Другой подход заключается в добавлении переопределения ToString -метод к emailFolder -учебный класс:

Class emailFolder
    Public Property Title As String

    Public Overrides Function ToString() As String
        Return Me.Title
    End Function
End Class
Другие вопросы по тегам