Как вы получаете уровень TreeviewItem в WPF C #?
-
02-10-2019 - |
Вопрос
Как вы получаете уровень TreeviewItem в WPF C #? В формах Windows есть член элемента класса TreeView, но, похоже, не так для WPF C #.
Решение
Создайте модель просмотра.
Модель зрения GVES Большая гибкость с 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