Вопрос

Как вы получаете уровень TreeviewItem в WPF C #? В формах Windows есть член элемента класса TreeView, но, похоже, не так для WPF C #.

Это было полезно?

Решение

Создайте модель просмотра.

Модель зрения GVES Большая гибкость с TreeView, чем вы можете добиться без него. Сделайте себе одолжение, не идите на визуальное дерево, если родительский узел не виден, он может быть виртуальным, а ваш уровень (или глубина) будет неверной. Создайте модель просмотра, которая включает ваши данные и знает на каком уровне он.

Проверьте ответы, размещенные здесь.

Ответ ссылку один (Вы бы добавили еще одно свойство на ваш вид по просмотру - уровень)

Treeview Смотреть модель демо

Другие советы

Я сделал это с конвертером, потому что я хотел сделать это с <style>

<DataTrigger Binding="{Binding Parent, RelativeSource={RelativeSource Self}, Converter={StaticResource TreeViewItemConverter}}" Value="1">
         <Setter TargetName="Bd" Property="Background"  Value="Yellow"/>
</DataTrigger>

И преобразователь

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((value as TreeView) != null)//level 1
            return 0;

        var item = (value as TreeViewItem);
        if (item != null) // level 2 and 3
            return (item.Parent as TreeViewItem)!=null ? 2 : 1;
        return 0;
    }

Это особенно полезно для многоуровневого стиля в TreeView

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top