我在XAML中使用它来根据Josh Smith的示例代码here从视图模型加载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的主题被忽略。它使选定的项目文本为黑色,背景为深蓝色,因此难以阅读。有没有办法同时使用上面的主题和代码?
答案 0 :(得分:3)
尝试将BasedOn
设为{StaticResource {x:Type TreeViewItem}}
。
这将采用TreeViewItems
的默认样式(由主题提供)作为您的样式的基础。
答案 1 :(得分:0)
只需编写代码:
<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>