#wpf #treeview #treeviewitem
#wpf #просмотр дерева #treeviewitem
Вопрос:
Я использую это в XAML для загрузки дочерних элементов treeview из модели представления, основанной на примере кода Джоша Смита здесь:
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.ItemContainerStyle>
Это приводит к игнорированию темы, которую я использую для TreeViewItem. Это делает текст выбранного элемента черным, а фон темно-синим, поэтому его трудно читать. Есть ли способ использовать и тему, и приведенный выше код одновременно?
Ответ №1:
Попробуйте установить BasedOn
на {StaticResource {x:Type TreeViewItem}}
.
Это приведет к использованию стиля по умолчанию для TreeViewItems
(который предоставляется темой) в качестве основы для вашего стиля.
Комментарии:
1. Спасибо за ответ. Я не уверен, куда это поместить. Я попробовал это здесь, но он говорит, что TreeViewItem не найден. ‘code'<Просмотр дерева. ItemContainerStyle> <Style TargetType=»{x: Type TreeViewItem}» BasedOn =»{StaticResource {x:Type TreeViewItem}}»> <Свойство Setter=»IsExpanded» Значение =»{Привязка расширена, режим = TwoWay}» /> <Свойство Setter=»IsSelected» Значение =»{Привязка выбрана, Mode=TwoWay}» /> </Стиль> </Просмотр дерева. ItemContainerStyle>’код’
2. На самом деле, это сработало в любом случае, несмотря на ошибку. Спасибо за вашу помощь.
3. Для меня этот код выглядит нормально… Редактировать: О да, просто игнорируйте ошибки.
4. Это не позволит мне повысить ваш ответ, потому что мне нужно больше репутации, извините за это.
Ответ №2:
Просто форматированный код:
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource {x:TypeTreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.ItemContainerStyle>