复杂的Silverlight TreeView,嵌套层次结构可能吗?

2024-01-25

我有一个看起来像这样的数据库:

Locations         [rootlevel]
   Inspections    [level1]
   Areas          [level1]
      Inspections [level2]

因此,每个位置可以有零个或多个检查和零个或多个区域,并且区域可以有零个或多个检查。检查的记录都具有 LocationID!=null 和 AreaID=null 或 !=null 来获取此层次结构。

我想获取树视图中表中每个项目的所有名称作为导航。到目前为止我可以获得任何一个

地点-->区域-->检查或

地点-->检查

我似乎无法让树视图层次结构来显示我需要的内容。是否可以?我尝试使用嵌套树视图作为层次结构中的项目来显示我想要的内容,但它无法正常工作。

位置-->区域-->检查的 xaml 代码

 <!--NAVIGATION TREE HIERARCHICAL TEMPLATE-->
    <common:HierarchicalDataTemplate x:Key="AssetManager" ItemsSource="{Binding Path=Areas}">

        <!--START OF AREA OPTIONS TEMPLATE-->
        <common:HierarchicalDataTemplate.ItemTemplate>
            <common:HierarchicalDataTemplate ItemsSource="{Binding Path=Inspections}">

                <!--START OF INSPECTION OPTIONS TEMPLATE-->
                <common:HierarchicalDataTemplate.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="Assets/Resources/ImageResources/SearchICON2.png" Height="20" Width="20" />
                            <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>
                        </StackPanel>
                    </DataTemplate>
                </common:HierarchicalDataTemplate.ItemTemplate>
                <!--END OF INSPECTION OPTIONS TEMPLATE-->

                <StackPanel Orientation="Horizontal">
                    <Image Source="Assets/Resources/ImageResources/ManufacturingICON.png" Width="20" Height="20"/>
                    <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>
                </StackPanel>
            </common:HierarchicalDataTemplate>
        </common:HierarchicalDataTemplate.ItemTemplate>
        <!--END OF AREA OPTIONS TEMPLATE-->


            <StackPanel Orientation="Horizontal">
                    <Image Source="Assets/Resources/ImageResources/ManufacturingICON.png" Width="20" Height="20"/>
                    <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>                    
          </StackPanel>     
    </common:HierarchicalDataTemplate>
    <!--END OF NAVIGATION TEMPLATE-->

位置的 xaml--> 检查

 <!--NAVIGATION TREE HIERARCHICAL TEMPLATE-->
    <common:HierarchicalDataTemplate x:Key="AssetManager" ItemsSource="{Binding Path=Inspections}">
            <StackPanel Orientation="Horizontal">
                    <Image Source="Assets/Resources/ImageResources/ManufacturingICON.png" Width="20" Height="20"/>
                    <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>
                </StackPanel>
            </common:HierarchicalDataTemplate>
        </common:HierarchicalDataTemplate.ItemTemplate>
        <!--END OF TEMPLATE-->

用于嵌套树视图的 xaml

 <!--NAVIGATION TREE HIERARCHICAL TEMPLATE-->
    <common:HierarchicalDataTemplate x:Key="AssetManager" ItemsSource="{Binding Path=Areas}">

        <!--START OF AREA OPTIONS TEMPLATE-->
        <common:HierarchicalDataTemplate.ItemTemplate>
            <common:HierarchicalDataTemplate ItemsSource="{Binding Path=Inspections}">

                <!--START OF INSPECTION OPTIONS TEMPLATE-->
                <common:HierarchicalDataTemplate.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="Assets/Resources/ImageResources/SearchICON2.png" Height="20" Width="20" />
                            <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>
                        </StackPanel>
                    </DataTemplate>
                </common:HierarchicalDataTemplate.ItemTemplate>
                <!--END OF INSPECTION OPTIONS TEMPLATE-->

                <StackPanel Orientation="Horizontal">
                    <Image Source="Assets/Resources/ImageResources/ManufacturingICON.png" Width="20" Height="20"/>
                    <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>
                </StackPanel>
            </common:HierarchicalDataTemplate>
        </common:HierarchicalDataTemplate.ItemTemplate>
        <!--END OF AREA OPTIONS TEMPLATE-->

        <StackPanel Orientation="Vertical">                         
                            <StackPanel Orientation="Horizontal">
                    <Image Source="Assets/Resources/ImageResources/ManufacturingICON.png" Width="20" Height="20"/>
                    <TextBlock Margin="0,0,0,0" Text="{Binding Path=Name}"/>                    
                </StackPanel>
                            <sdk:TreeView HorizontalAlignment="Left" ItemsSource="{Binding Source={StaticResource locationInspectionsViewSource}}" Name="inspectionsTreeView" VerticalAlignment="Top" ItemTemplate="{StaticResource Level2}" BorderBrush="{x:Null}" Background="{x:Null}"/>                                         
                    </StackPanel>
    </common:HierarchicalDataTemplate>
    <!--END OF NAVIGATION TEMPLATE-->

谢谢


经过大量的研究、拉扯和头部处理后,我发现:

No,使用 HierarchicalDataTemplate 来显示嵌套的 TreeView 层次结构时是不可能的。数据模板只允许每个节点有一个“子节点”。

一种解决方案是将两个列表项“子项”合并为一个列表“子项”,并在层次结构中使用它。 因此,在我的例子中,位置将与一个“子”表相关,其中区域和检查实体相邻,每个区域与相关的检查子项相关,而检查没有子项。

第二种解决方案就是使用嵌套的DataGrid。这看似作弊,但却达到了预期的效果。需要更改 DataGrid 的模板,以便没有列标题/交替行着色/突出显示等。具体取决于 TreeView 需要的外观。

事实上,第二个是更简单的选项,因为它使用标准的 DomainDataSource 作为根表(包含所有包含内容),这允许轻松封装 DataContext,这也意味着仍然没有代码隐藏来确保布局是独立的。

可能还有更多方法,但我找到了一个适合我且简单的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复杂的Silverlight TreeView,嵌套层次结构可能吗? 的相关文章

随机推荐

  • 如何从 python 程序发送信号?

    我有这段代码可以监听 USR1 信号 import signal import os import time def receive signal signum stack print Received signum signal sign
  • 用于同步数组访问的最快 x86 汇编代码? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 同步访问内存中数组的最快 x86 汇
  • PHP 中具有不透明度的径向渐变

    我需要创建一个具有不透明度的 PNG 径向渐变 我浏览过 GDLib 但看不到生成径向渐变的方法 有谁知道使用 GDlib 或任何其他 PHP 图形库的方法吗 我想最坏的情况我可以使用 GDLib 逐像素生成它 但是如何开始对此进行数学计算
  • SQLAlchemy 模型 Django 喜欢保存方法吗?

    我正在一个项目中使用 sqlalchemy 不过 我更习惯Django的ORM 我想知道在 sqlalchemy ORM 中是否有类似于 Django 模型的 save 方法 我可以重写该方法以在 提交 保存 时自动实施操作 您可以使用一些
  • 无法获取 SoftwareComponentInternal - Maven 发布插件项目 gradle 的未知属性“release”

    我有一个包含多个模块的 Android 项目 我想将它们发布到自托管 Maven 存储库 我之前将发布代码存在于各个模块中 并且一切正常 我现在正在尝试将发布代码移至项目中build gradle这样我就可以重用该代码 我的各个模块内的代码
  • 在 pandas 中组合两个时间序列

    如果这明显记录在某处 我深表歉意 但我很难发现它 我有两个带有一些重叠日期 索引的 TimeSeries 我想合并它们 我假设我必须指定从两个系列中的哪一个获取重叠日期的值 为了说明我有 s1 2008 09 15 100 2008 10
  • 数据 URI 的用途是什么?

    为什么资源有时会嵌入到数据 URI 中 而不是使用链接到服务器上作为文件存储的资源的常规 URI 1 减少服务器请求 数据 URI 可用于通过减少获取资源所需的 HTTP 请求数量来减少服务器负载并提高客户端性能 例如 这个 HTML im
  • 注册媒体维基需要管理员批准吗?

    我维护的一个 wiki 受到了垃圾邮件机器人的严重打击 我们没有很多用户 而且我不想让合法用户背负验证码 有没有一种简单的方法可以让管理员确认注册 我浏览了手册 但无法弄清楚如何操作 您可以创建一个新用户权限 例如 批准 允许管理员分配该权
  • 如何在流上重用过滤器和映射的应用程序?

    我有一组从共享类型继承的域对象 即GroupRecord extends Record RequestRecord extends Record 子类型具有特定的属性 即GroupRecord getCumulativeTime Reque
  • 如何在 Android 中的 Activity 上强制执行自定义权限?

    我在android中创建了一个自定义权限
  • Python wand:具有透明度的合成图像

    我正在尝试用 Wand 合成两个图像 计划是将图像 B 放在 A 的右侧 并使 B 的透明度为 60 使用 IM 可以这样完成 composite blend 60 geometry 1000 0 b jpg a jpg new jpg 但
  • json对象访问

    我知道这很简单 但我坚持不下去 我有 json 变量 数据如下 var jsonText user Gender M Minage 19 Maxage 30 MaritalStatusId 0 user maritialtype Does
  • Google 应用程序引擎网站的多个域 - 每个域的分析

    好的 基本上我正在为我工 作的公司测试一种新的营销理念 购买 10 个左右的域名 其中包含与业务相关的关键搜索词 例如 carservice com carmot com hondaservice com 并将它们全部链接到一个网站 托管在
  • 训练 tesseract 后,tessdata 文件夹中应包含哪些文件?

    我使用 tesseract 作为我的 ANPR 应用程序的 OCR 引擎 我已经用车牌字体训练了 tesseract 3 01v 但我需要知道 tessdata 文件夹中应包含哪些文件 我应该使用安装 tesseract 3 01v 的同一
  • 填充轮廓但保留包​​含的区域未填充

    我有这个 python 代码 据说可以填充图像的轮廓 但其中包含的孔未填充 这就是我要的 但这就是我得到的 我尝试指定轮廓层次结构来填充 cv2 但我无法得到我想要的结果 这是我尝试过的 import numpy as np import
  • 在不使用注册策略的情况下将用户添加到 Azure B2C

    我正在尝试开发一个仅具有登录策略的应用程序 据我所知 为 B2C 创建新用户的受支持方法是使用用户页面上的新用户对话框以及图形 API 它是否正确 有我缺少的方法吗 哪种方法是首选方法 当尝试在新用户对话框中创建用户时 用户名格式错误 例如
  • 在 MySQL DB 中存储 Base64 编码值的最佳方法?

    我有一个值想存储在我的数据库中 排序规则对这样的字符串有什么影响吗 YToyOntzOjIwOiJUeXBlX29mX29yZ2FuaXNhdGlvbiI7czoyMDoiTWVtYmVyIG9mIFBhcmxpYW1lbnQiO3M6OD
  • 以编程方式更改 UIButton 的标题颜色,其标题设置为 iOS 7 中的属性

    我已经添加了一个UIButton in my UITableView以编程方式 我的问题是我需要给Letter Spacing以及需要更改按钮标题颜色 我已经给出了Letter Spacing在按钮标题文本中使用以下代码 但标题文本颜色没有
  • 将两张表连接成一张大表

    我有两个具有相同列的表 我需要将一个表的行复制到另一个表的行 以创建一个包含两个表中所有值的大表 现在我正在执行此查询以返回相同的内容 SELECT col1 col2 col3 from Table1 union SELECT col1
  • 复杂的Silverlight TreeView,嵌套层次结构可能吗?

    我有一个看起来像这样的数据库 Locations rootlevel Inspections level1 Areas level1 Inspections level2 因此 每个位置可以有零个或多个检查和零个或多个区域 并且区域可以有零