Silverlight TreeView не будет заполняться - PullRequest
0 голосов
/ 09 февраля 2011

Я пытаюсь заполнить TreeView в silverlight, но у меня возникают некоторые трудности - он всегда кажется пустым.

Я нашел хороший учебник ( здесь ) о том, как это сделать.Я создал новый проект и скопировал код, как он выглядит, используя 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 нормально, но ничего не отображается.Это проблема привязки дисплея?

1 Ответ

4 голосов
/ 09 февраля 2011

Чтобы использовать привязки, вы должны предоставить свойства - хотя мой VB.NET не очень хорош, похоже, что Items - это поле, а не свойство в вашем классе myItem, и то же самое для myString.

Приветствия -

...