如何使用 Xaml 中的 SortDescriptions 对 TreeView 项目进行排序?

2024-01-07

我有一个清单Layers绑定到一个TreeView其中每个实例都有一个列表Effects。我通过 HierarchicalDataTemplate 向它们展示,该模板效果很好,但我正在尝试使用它们对它们进行排序SortDescriptions.

我不知道如何在 xaml 中执行此操作,但这样做只会对第一级项目进行排序,而不对子项目进行排序:

ICollectionView view = CollectionViewSource.GetDefaultView ( treeView1.ItemsSource );
view.SortDescriptions.Add ( new SortDescription ( "Name", ListSortDirection.Ascending ) );

我想先对它们进行排序.Color,然后由.Name.

有任何想法吗?

编辑:我添加了这段代码:

<Window.Resources>

    <CollectionViewSource x:Key="SortedLayers" Source="{Binding AllLayers}">
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="Color" />
            <scm:SortDescription PropertyName="Name" />
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>

</Window.Resources>

但这仍然只适用于第一级层次结构。如何为每个layer.Effects集合指定它?


我建议使用转换器对子项目进行排序。 像这样的东西:

<TreeView Name="treeCategories" Margin="5" ItemsSource="{Binding Source={StaticResource SortedLayers}}">
<TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Effects, Converter={StaticResource myConverter}, ConverterParameter=EffectName}">
        <TextBlock Text="{Binding Path=LayerName}" />
        <HierarchicalDataTemplate.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Path=EffectName}" />
            </DataTemplate>
        </HierarchicalDataTemplate.ItemTemplate>
    </HierarchicalDataTemplate>
</TreeView.ItemTemplate>

和转换器:


public class MyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        System.Collections.IList collection = value as System.Collections.IList;
        ListCollectionView view = new ListCollectionView(collection);
        SortDescription sort = new SortDescription(parameter.ToString(), ListSortDirection.Ascending);
        view.SortDescriptions.Add(sort);

        return view;
    }

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

如何使用 Xaml 中的 SortDescriptions 对 TreeView 项目进行排序? 的相关文章

  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • WinRT 中的数据触发器?

    我能够找到事件触发 http msdn microsoft com en us library windows apps windows ui xaml eventtrigger 28v VS 85 29 aspx然而 在 WinRT 参考
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 页面内锚链接的 jQuery this.hash 行为

    我有一个关于 this hash 如何在 jQuery 中的页面锚链接工作的问题 每次用户单击该链接时 我都需要处理哈希属性 a href foo class inpageLink Click Me lt a gt a a h3 Targe
  • System.Net.MailMessage 允许某些无效的电子邮件地址格式

    许多人可能已经意识到 正确验证电子邮件地址可能有点像一场噩梦 您可以整天搜索与当前 RFC 标准匹配的 C 正则表达式 您会发现不同的正则表达式会给出不同的结果 如果你看http en wikipedia org wiki Email ad
  • 使用无符号字符计数器从 0 到 255 进行无限循环

    我想打印 0 255 中的所有数字 但这个循环不会停止 为什么 for unsigned char i 0 i lt 255 i cout lt lt int i lt lt endl i is an unsigned char其范围通常为
  • MVC4 Razor 视图中出现奇怪的空白

    我正在 ASP Net MVC4 中开发一个应用程序 并且遇到了一个奇怪的空白问题 我用 Razor 开发了很多 MVC3 网站 没有出现这个问题 这是我的模板 cshtml 文件 content bootstrap bootstrap m
  • querySelector() 和 querySelectorAll() 之间的区别[0]

    我遇到了一些 JS 代码 使用以下代码来选择多个节点中的第一个 querySelectorAll 0 下面的代码不是在做同样的事情吗 querySelector 使用有什么好处吗querySelectorAll 0 两个表达式将返回完全相同
  • Context.startForegroundService()然后没有调用Service.startForeground()?

    我的用户报告了数百起崩溃 但我仍然找不到解决方案 这些崩溃来自 Android 8 三星 华为 谷歌 我遇到这两次崩溃 Fatal Exception android app RemoteServiceException Context s
  • 如何在html页面中嵌入React组件

    我想构建一个像这样的 React 组件 class MyComponent extends React Component render return div This is a simple component div 并像这样使用它
  • 如何找到当前焦点的程序?

    我如何知道当前焦点是哪个进程 编辑 Windows 操作系统 从 XP 到 7 Call GetForegroundWindow http msdn microsoft com en us library windows desktop m
  • Entity Framework 4.3 迁移移动现有数据

    我正在使用 EF Code First 4 3 迁移来更新我的数据库方案 现在我遇到以下情况 需要删除表A 必须创建表B 并且必须将表A的数据 以及一些其他数据 复制到表B 我无权访问DbContext in the DbMigration
  • 如何在 Spring Boot 项目的调试/运行时在 IntelliJ“out”目录中生成 build-info.properties?

    在我的 build gradle 中 我添加了 spring 构建信息 springBoot mainClass springBootMainClass buildInfo additionalProperties name appName
  • 自定义 HashMap 实现

    这个问题是在一次采访中问我的 我认为获得最佳解决方案的唯一方法是 SOF 所以问题是 如何在java中实现自定义HashMap 假设没有称为HashMap的数据结构 我能想到的唯一答案是实现关联数组 但话又说回来 Java 没有关联数组 对
  • 关闭 Eclipse / Aptana 中的工具提示

    我不知道是否有人注意到 Eclipse 有这个烦人的功能 它需要在悬停任何东西时显示无用的工具提示 我想知道是否有人知道一种方法可以完全消除 Eclipse Aptana 中的所有工具提示行为 Thanks 我在 Window gt Pre
  • 无法链接到 libgfortran.a [重复]

    这个问题在这里已经有答案了 我的系统和文件上安装了 gfortranlibgfortran a可以在以下位置找到 usr lib gcc x86 64 linux gnu 4 6 Using nm我确定该功能 gfortran compar
  • 从两个列表中删除一个元素

    我有 list a 和 list b 这两个列表都有订单中的项目 每次我在 list b 中遇到 0 时 我想从 list a AND list b 中删除与该索引关联的条目 我不知道该怎么做 Before modification lis
  • 长型64位linux

    非常简单的问题 伙计们 但也许我只是忘记了一些事情 在64位linux中 long是8字节正确吗 如果是这种情况 并且我想设置第 64 位 我可以执行以下操作 unsigned long num 1 lt lt 63 然而 每当我编译这个时
  • Eclipse ADT 捆绑包链接在哪里? [复制]

    这个问题在这里已经有答案了 在 Android 开发的官方网站上 我无法再看到 Eclipse ADT 捆绑包的链接 我无法切换到 Android Studio 因为我的框架当前是基于 Ant 的 而不是Gradle https en wi
  • 如何在 Flutter 中创建带圆角的模态底板?

    显示模态底部表不提供任何造型或装饰 我想创建类似 Google Tasks 底页的内容 更新于 2019 08 05 您现在可以使用默认值来完成此操作showModalBottomSheet现在支持添加的方法ShapeBorder并且bac
  • Jooq LocalDateTime 字段使用系统时区而不是会话时区

    我正在使用 jooq v3 11 9 访问以 UTC 时间运行的 MySQL 数据库 我使用生成的实体并使用 JSR 310 时间类型 我在配置中使用的选项
  • Spring 和 XSLT,字符编码

    我对 HTML 视图的正确字符集编码部分有疑问 JSP 文件中的 XSL 文件生成 html 数据库中的值编码正确 但表的静态标头包含错误的字符 例如 有一些标题名称为 伊米斯 纳兹维斯科 哈斯洛 普莱奇 但它会生成 Imi Nazwisk
  • 如何使用 Xaml 中的 SortDescriptions 对 TreeView 项目进行排序?

    我有一个清单Layers绑定到一个TreeView其中每个实例都有一个列表Effects 我通过 HierarchicalDataTemplate 向它们展示 该模板效果很好 但我正在尝试使用它们对它们进行排序SortDescription