如何反转TreeView的顺序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何反转TreeView的顺序?相关的知识,希望对你有一定的参考价值。

这个问题看起来很简单,但在整天搜索之后我找不到任何可行的解决方案。

我有一个标准的TreeView:

<TreeView x:Name="MyUpsideDownTree" ItemsSource="{Binding Items}" />

项目是一个列表(我需要列表保持这个顺序)喜欢

  • 一个
  • 乙 B1 B2
  • C

我希望我的TreeView以颠倒的顺序显示项目(包括所有子项目!),即

  • C
  • 乙 B2 B1
  • 一个

排序似乎不是解决方案,因为我不想比较项目的价值。

转换器......?

谢谢你的帮助!

答案

你尝试过这样的事吗? (我假设您的Items绑定是一个列表。)

转换器:

public class ReverseListConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var list = (List<object>)value;

        list.Reverse();

        return list;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        return DependencyProperty.UnsetValue;
    }
}

用法:

<Page.Resources>
    <ReverseListConverter x:Key="ReverseListConverter"/>
</Page.Resources>

<TreeView x:Name="MyUpsideDownTree" ItemsSource="{Binding Items, Converter={StaticResource ReverseListConverter}" />

以上是关于如何反转TreeView的顺序?的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL,尽管逆时针顺序,一些法线反转

如何将treeview的内容写入文本文件

Python 中的反转字符串:reversed()切片等

WPF中的TreeView,如何改变子节点的顺序, 给个例子,多谢

关于代码片段的时间复杂度

c# winform 为啥 我用treeview做得导航界面,顺序不对,望高手支招。