我对Xaml很陌生,不知何故我被困在这里了。我在谷歌上搜索了很多不同的方法,但都没有奏效:-(我希望这里有人有一个想法,并能帮助我:-)
在互联网上的一些教程的帮助下,我得到了这个TreeView。它的工作原理是:-)
<TreeView>
<TreeViewItem ItemsSource="{Binding Data.Number}">
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<Image Width="15" Margin="5 0 5 0" Source="image.ico"/>
<TextBlock Text="{Binding Data.ID}"/>
<TextBlock Text=" [" Foreground="Blue"/>
<TextBlock Text="{Binding Data.Number.Count}" Foreground="Blue"/>
<TextBlock Text="]" Foreground="Blue"/>
</StackPanel>
</TreeViewItem.Header>
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TreeViewItem Header="{Binding ItemID}">
<TreeViewItem ItemsSource="{Binding ItemInfo}">
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<Image Width="15" Margin="5 0 5 0" Source="image.ico"/>
<TextBlock Text="Items"/>
<TextBlock Text=" [" Foreground="Blue"/>
<TextBlock Text="{Binding ItemInfo.Count}" Foreground="Blue"/>
<TextBlock Text="]" Foreground="Blue"/>
</StackPanel>
</TreeViewItem.Header>
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value.Number}"/>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
<TreeViewItem ItemsSource="{Binding SetInfo}">
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<Image Width="15" Margin="5 0 5 0" Source="image.ico"/>
<TextBlock Text="Sets"/>
<TextBlock Text=" [" Foreground="Blue"/>
<TextBlock Text="{Binding SetInfo.Count}" Foreground="Blue"/>
<TextBlock Text="]" Foreground="Blue"/>
</StackPanel>
</TreeViewItem.Header>
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value.ID}"/>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
<TreeViewItem ItemsSource="{Binding GroupInfo}">
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<Image Width="15" Margin="5 0 5 0" Source="image.ico"/>
<TextBlock Text="Groups"/>
<TextBlock Text=" [" Foreground="Blue"/>
<TextBlock Text="{Binding GroupInfo.Count}" Foreground="Blue"/>
<TextBlock Text="]" Foreground="Blue"/>
</StackPanel>
</TreeViewItem.Header>
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value.Number}"/>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
</TreeViewItem>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
</TreeView>现在的问题是,我希望选择的项目(通过鼠标单击)变得粗体。但只有选定的项目(不包括下面或以上的项目)。这个项目在哪个级别并不重要。
我尝试了很多变体,但都没有效果。这两个是最好的,但他们总是选择一个洞节点或只是顶部的节点,我不能把它分解为一个节点。
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
<Setter Property="FontWeight" Value="Normal"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle><TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}}, FallbackValue=False}" Value="True">
<Setter Property="TextBlock.FontWeight" Value="Bold" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>发布于 2018-07-18 16:42:51
你能试试这个Style吗?
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="FontWeight" Value="Normal"/>
</Trigger>
</Style.Triggers>
</Style>
</TreeView.Resources>https://stackoverflow.com/questions/51393827
复制相似问题