1

こんにちは。ご協力いただきありがとうございます。Silverlight 5 で階層データ テンプレートを使用して、データを treeView にバインドしようとしています。3 つのレベルの階層を実現しようとしています。ただし、私のテンプレートは 2 つしか生成できません。それぞれ先行モデルを項目テンプレートとして使用する 3 つの階層データ テンプレートがありますが、何を試しても、3 番目のレベルには何も表示されません。私のxamlは次のようになります:

<sdk:HierarchicalDataTemplate x:Key="ModTemplate" 
                              ItemsSource="{Binding Path=ServerChildren}" >
    <TextBlock FontStyle="Italic" Text="{Binding Path=ServerName}" />
</sdk:HierarchicalDataTemplate>

<sdk:HierarchicalDataTemplate x:Key="ChildTemplate2" 
                              ItemsSource="{Binding Path=ServerChildren}"
                              ItemTemplate="{StaticResource ModTemplate}">
    <TextBlock FontStyle="Italic" Text="{Binding Path=ServerName}" />
</sdk:HierarchicalDataTemplate>

<sdk:HierarchicalDataTemplate x:Key="GroupNameTemplate" 
                              ItemsSource="{Binding Path=ServerChildren}" 
                              ItemTemplate="{StaticResource ChildTemplate2}">
    <TextBlock Text="{Binding Path=GroupName}" FontWeight="Bold" />
</sdk:HierarchicalDataTemplate>

TreeView のデータ コンテキストは、コード ビハインドで ServerOCollection クラスの監視可能なコレクションに設定されます。このコレクションには、ServerObject クラスの ObservableCollection があり、さらに ModuleObject クラスの ObserverableCollection があります。それに応じて TreeView の最初の 2 つのレベルを設定することはできますが、3 番目のレベルには何も表示されません。助けてください!

編集:テンプレートを次のように変更することで、目的の結果を得ることができました。

<sdk:HierarchicalDataTemplate x:Key="ModTemplate" ItemsSource="{Binding ApplicationModules}">
            <StackPanel Orientation="Horizontal" >
                <ContentPresenter Margin="0 0 4 0" Content="{Binding Icon}" />
                <TextBlock FontStyle="Italic" Text="{Binding Path=ModuleName}" />
            </StackPanel>
        </sdk:HierarchicalDataTemplate>

        <sdk:HierarchicalDataTemplate x:Key="ChildTemplate2" 
                                      ItemsSource="{Binding Path=ApplicationModules}"
                                      ItemTemplate="{StaticResource ModTemplate}">
            <StackPanel Orientation="Horizontal">
                <TextBlock FontStyle="Italic" Text="{Binding Path=ServerName}" />
            </StackPanel>
        </sdk:HierarchicalDataTemplate>

        <sdk:HierarchicalDataTemplate x:Key="GroupNameTemplate" 
            ItemsSource="{Binding Path=ServerChildren}" 
            ItemTemplate="{StaticResource ChildTemplate2}">
            <StackPanel Orientation="Horizontal">
                <ContentPresenter Margin="0 0 4 0" Content="{Binding GroupIcon}" />
                <TextBlock Text="{Binding Path=GroupName}" FontWeight="Bold" />
            </StackPanel>
        </sdk:HierarchicalDataTemplate>
4

0 に答える 0