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
答
在绑定ListBox
对象将在默认情况下,显示通过调用对象ToString
返回的值的列表。您可以为ListBox
定义ItemTemplate
,或者对于简单文本显示,您可以将DisplayMemberPath
设置为要显示的属性的名称。所以,你的情况,你可以绑定在列表框中显示每个项目的name
属性添加
lbAvGroups.DisplayMemberPath = "name"
。
您的列表框的XAML代码是什么样的? – Mark
编辑显示xaml和相关的绑定代码。如果我在for循环中添加messagebox.show(item.name),它将显示实际的名称。 – TonyW
尝试添加'lbAvGroups.DisplayMemberPath =“name”' - 我相信它会使用'ToString'返回的任何内容。 – Mark