Как я могу инвертировать порядок TreeView? - PullRequest
0 голосов
/ 31 августа 2018

Этот вопрос кажется таким простым, но я не нашел никакого приемлемого решения после его поиска в течение всего дня.

У меня есть стандартный TreeView:

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

Предметы - это список (мне нужно, чтобы список оставался в этом порядке), например

  • A
  • B
    • B1
    • В2
  • C

Я хочу, чтобы мой TreeView отображал элементы (включая все подпункты!) В инвертированном порядке, то есть

  • C
  • B
  • B1
A

Сортировка не кажется решением, так как я не хочу сравнивать значения элементов.

А конвертер ...?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 01 сентября 2018

Вы пробовали что-то подобное? (Я предполагаю, что ваша 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}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...