我正在尝试在Silverlight中填充TreeView,但我遇到了一些困难 - 它总是显得空白。
我找到了一个很好的教程(here),如何做到这一点,我创建了一个新项目并使用C#复制出现的代码,并且它工作得很好。我现在尝试将它合并到我的项目中(使用VB),但它不起作用。我的VB代码如下:
XAML
<UserControl.Resources>
<common:HierarchicalDataTemplate x:Key="myHierarchicalTemplate" ItemsSource="{Binding Items}" >
<TextBlock Text="{Binding myString}" />
</common:HierarchicalDataTemplate>
</UserControl.Resources>
<controls:TreeView Height="200" HorizontalAlignment="Left" Margin="280,464,0,0" Name="TreeView1" VerticalAlignment="Top" Width="120" ItemTemplate="{StaticResource myHierarchicalTemplate}" />
VB代码:
Public Class myItem
Public myString As String
Public Items As ObservableCollection(Of myItem)
Public Sub New(ByVal myString As String, ByVal ParamArray myItems() As myItem)
Me.myString = myString
Dim itemsObservableCollection = New ObservableCollection(Of myItem)
For Each item As myItem In myItems
itemsObservableCollection.Add(item)
Next
Me.Items = itemsObservableCollection
End Sub
End Class
并填充它:
Dim itemsSource As New ObservableCollection(Of myItem)
itemsSource.Add(New myItem("Hello", New myItem("World"),
New myItem("Foo")))
itemsSource.Add(New myItem("Moo", New myItem("Boo", New myItem("Goo"))))
TreeView1.ItemsSource = itemsSource
我错过了什么?
编辑:我已经尝试调试项目,“itemsSource”集合似乎正在生成,并且正在被分配给TreeView1.ItemsSource,但没有显示任何内容。它是显示装订问题吗?
答案 0 :(得分:4)
要使用绑定,你必须公开属性 - 虽然我的VB.NET不是很好看,但是看起来Items是一个字段而不是myItem类中的属性,而myString也是如此。
干杯 -