Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 具有导航属性EntityFramework的TreeView HierarchicalDataTemplate_Entity Framework_Treeview - Fatal编程技术网

Entity framework 具有导航属性EntityFramework的TreeView HierarchicalDataTemplate

Entity framework 具有导航属性EntityFramework的TreeView HierarchicalDataTemplate,entity-framework,treeview,Entity Framework,Treeview,我有三个具有一对多关系的链接实体(类别->类型->类)。 是否可以仅绑定Categories实体,并使用导航属性和HierarchycalDataTemplate表示其余实体? 我想象这样的情况: <TreeView ItemsSource="{Binding Categories}"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSour

我有三个具有一对多关系的链接实体(类别->类型->类)。 是否可以仅绑定Categories实体,并使用导航属性和HierarchycalDataTemplate表示其余实体?
我想象这样的情况:

<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>

我最近在一个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>

这将做的是,它将匹配树中的数据类型-如果它匹配
类别
,它将创建stackpanel,然后使用导航集合
类型
启动另一个分支

对于
类型
,它将执行相同的基本操作-为该项目创建面板,然后为其导航集合
创建另一个分支


如果它是
,它将只创建面板,因为它是
数据模板
,而不是
层次数据模板

,我最近在一个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>

这将做的是,它将匹配树中的数据类型-如果它匹配
类别
,它将创建stackpanel,然后使用导航集合
类型
启动另一个分支

对于
类型
,它将执行相同的基本操作-为该项目创建面板,然后为其导航集合
创建另一个分支


如果它是
,它将只创建面板,因为它是
数据模板
,而不是
层次数据模板

是伪代码吗?您没有设置数据类型和其他内容。WPF还是winforms?不管怎样,从概念上讲,这都是可行的,但您的实现有点不成功:)谢谢,我的实现只是一个草案,因为我仍在寻求可能性。是的,您绝对可以做到!有这样有用的ex或文章吗?或者你能用一个通用的模式来回答吗?这是伪代码吗?您没有设置数据类型和其他内容。WPF还是winforms?不管怎样,从概念上讲,这都是可行的,但您的实现有点不成功:)谢谢,我的实现只是一个草案,因为我仍在寻求可能性。是的,您绝对可以做到!有这样有用的ex或文章吗?或者你能用一般的模式来回答吗?--这是一个很棒的答案。但是如何将这些
HierarchycalDataTemplate
s添加到树的ItemsSource中,而不显示错误“ItemTemplate设置了多次”?谢谢--这是一个令人敬畏的答案。但是如何将这些
HierarchycalDataTemplate
s添加到树的ItemsSource中,而不显示错误“ItemTemplate设置了多次”?谢谢