ObservableCollection返回错误类型

问题描述:

出于某种原因,我将findall函数中的每个项目添加到observable集合中,并且我在列表框中取回“groupname”..而不是组的实际名称。ObservableCollection返回错误类型

Dim ctx As New PrincipalContext(ContextType.Domain) 
    Dim qbeGroup As New GroupPrincipal(ctx) 
    Dim srch As New PrincipalSearcher(qbeGroup) 
    For Each item In srch.FindAll() 
     GroupsList.Add(New groups With { _ 
      .name = item.Name 
      }) 
    Next 

下面是我简单的ObservableCollection

Public Property name() As String 
     Get 
      Return m_name 
     End Get 
     Set(value As String) 
      m_name = value 
     End Set 
    End Property 
    Private m_name As String 

有没有别的东西,我需要做返回的实际字符串?

编辑:XAML中

<ListBox x:Name="lbAvGroups_Copy" HorizontalAlignment="Left" Height="470" VerticalAlignment="Top" Width="355" Margin="392,35,0,0"/> 

我在后台代码的结合,所以这是我的约束力的样子。

Public View As ICollectionView 
Public GroupsList As new ObservableCollection(Of groups) 

View = CollectionViewSource.GetDefaultView(GroupsList) 
lbAvGroups.ItemsSource = View 
+2

您的列表框的XAML代码是什么样的? – Mark

+0

编辑显示xaml和相关的绑定代码。如果我在for循环中添加messagebox.show(item.name),它将显示实际的名称。 – TonyW

+1

尝试添加'lbAvGroups.DisplayMemberPath =“name”' - 我相信它会使用'ToString'返回的任何内容。 – Mark

在绑定ListBox对象将在默认情况下,显示通过调用对象ToString返回的值的列表。您可以为ListBox定义ItemTemplate,或者对于简单文本显示,您可以将DisplayMemberPath设置为要显示的属性的名称。所以,你的情况,你可以绑定在列表框中显示每个项目的name属性添加

lbAvGroups.DisplayMemberPath = "name"