2011-02-09 17 views
0

Silverlightでツリービューを作成しようとしていますが、いくつかの問題があります。Silverlight TreeView作成されません

私は新しいプロジェクトを作成し、表示されたとおりにC#を使用してコードをコピーしたので、完全に機能しました(チュートリアルはhere)。私は今私のプロジェクト(それは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

オブジェクトがINotifyPropertyChangedの –

答えて

4

バインディングを使用するにはプロパティを公開する必要があります.BB.NETは素晴らしいとは言えませんが、ItemsはmyItemクラスのプロパティではなく、myStringと同じフィールドです。

乾杯 -

+0

完璧を実装する必要があります - 感謝を。宣言を 'Public Property myString As String'に変更しました。ありがとう。 PS私のVBはおそらくあなたのものと同じくらい良いです! –

+1

@Gavin Coates:回答の左側にある下矢印の下にあるチェックマークアウトラインをクリックして受け入れます。 –

関連する問題