1

1対多の関係を持つ3つのリンクされたエンティティ([カテゴリ]->[タイプ]->[クラス])があります。カテゴリエンティティのみをバインドし、ナビゲーションプロパティとを使用して残りを表すことは可能HierarchicalDataTemplateですか?
私はこのようなものを想像します:

<TreeView ItemsSource="{Binding Categories}">

            <TreeView.ItemTemplate>

                <HierarchicalDataTemplate ItemsSource="{Binding Categories}" >
                    <TextBlock Foreground="Red" Text="{Binding Types}" />

                    <HierarchicalDataTemplate.ItemTemplate>
                        <HierarchicalDataTemplate ItemsSource="{Binding Classes}">
                            <TextBlock Text="{Binding TypeName}" />

                            <HierarchicalDataTemplate.ItemTemplate>
                                <DataTemplate >
                                    <TextBlock Text="{Binding ClassName}" />
                                </DataTemplate>
                            </HierarchicalDataTemplate.ItemTemplate>

                        </HierarchicalDataTemplate>

                    </HierarchicalDataTemplate.ItemTemplate>

                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>

        </TreeView>
4

1 に答える 1

1

私は最近これを行いました。WPFプロジェクトで、名前とナビゲーションプロパティに一致するようにタイプを更新しました。

タイプ/クラスはc#言語でキーワードとして使用されるため、より具体的なものに変更することを検討することをお勧めしますが、私はあなたがアイデアを得ると思います

  <!-- The Root Category Table -->
           <HierarchicalDataTemplateDataType="{x:Type Entities1:Categories}" ItemsSource="{Binding Types}" >
              <StackPanel Orientation="Horizontal">
                 <Image Name="img" Source="{Binding ., Converter={Converters:DataTypeImageConverter}}" />
                 <TextBlock Text="{Binding CategoryName}" FontWeight="Bold" />
              </StackPanel>
           </HierarchicalDataTemplate>
           <!-- Your Type Table -->
           <HierarchicalDataTemplate DataType="{x:Type Entities1:Type}"  ItemsSource="{Binding Classes}" >
              <StackPanel Orientation="Horizontal">
                 <Image Name="img" Source="{Binding ., Converter={Converters:DataTypeImageConverter}}" />
                 <TextBlock  Text="{Binding TypeName}" />
              </StackPanel>
           </HierarchicalDataTemplate>
           <!-- Your Class Table-->
           <DataTemplate DataType="{x:Type Entities1:Class}">
              <StackPanel Orientation="Horizontal">
                 <Image Name="img" Source="{Binding ., Converter={Converters:DataTypeImageConverter}}" />
                 <TextBlock Text="{Binding ClassName}" />
              </StackPanel>
           </DataTemplate>

これにより、ツリー内のデータ型と一致します-一致する場合Categoryは、スタックパネルが作成され、ナビゲーションコレクションを使用して別のブランチが開始されますTypes

の場合types、同じ基本的なことを行います。そのアイテムのパネルを作成し、次にナビゲーションコレクションの別のブランチを作成しますClass

の場合classは、パネルを作成するだけです。これは、DataTemplateではなく、HierarchicalDataTemplate

于 2012-08-30T14:53:22.413 に答える