Wpf 如何反转树视图的顺序?

Wpf 如何反转树视图的顺序?,wpf,xaml,treeview,Wpf,Xaml,Treeview,这个问题看起来很简单,但我找了一整天都没有找到任何可行的解决办法 我有一个标准的树状视图: <TreeView x:Name="MyUpsideDownTree" ItemsSource="{Binding Items}" /> Items是一个列表(我需要列表按此顺序排列),如下所示 A B B1 B2 C 我希望我的树视图以相反的顺序显示项目(包括所有子项目!),即 C B B2 B1 A 排序似乎不是解决方案,因为我不想比较项目的值 转换器 谢谢你的帮助

这个问题看起来很简单,但我找了一整天都没有找到任何可行的解决办法

我有一个标准的树状视图:

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

Items是一个列表(我需要列表按此顺序排列),如下所示

  • A
  • B
    • B1
    • B2
  • C
我希望我的树视图以相反的顺序显示项目(包括所有子项目!),即

  • C
  • B
    • B2
    • B1
  • A
排序似乎不是解决方案,因为我不想比较项目的值

转换器


谢谢你的帮助

你试过这样的东西吗?(我假设您的
项目
绑定是一个列表。)

转换器:

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;
    }
}
公共类ReverseListConverter:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
var list=(list)值;
list.Reverse();
退货清单;
}
公共对象转换回(对象值、类型targetType、对象参数、字符串语言)
{
返回dependencProperty.unset值;
}
}
用法:

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

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


不幸的是,这对我不起作用。每当我在列表中添加新项目时,它看起来都会出错。我希望“Add()”会使项目显示在顶部,但它会继续显示在树的底部。插入项目时,您可以尝试使用项目。插入(0,itemToAdd)这将在列表的开头添加项。@添加项时,UI中显示的是新项,还是只有调试代码才能看到新项?如果它们没有显示在UI中,请尝试将您的列表更改为ObservableCollection,并在添加到该列表后更改调用RaiseProperty(()=>项)。这是一个ObservableCollection,这些项确实会立即显示,但会显示在列表的末尾。正如我之前所说,我需要列表保持正确的顺序。在索引0处插入新项不是一个选项,因为同一列表在另一个位置以其原始顺序使用。看起来转换器只获取新项而不是整个列表,因此Reverse()在这里不会更改任何内容。。。