代码之家  ›  专栏  ›  技术社区  ›  V K

已选择树状视图项,未触发鼠标按钮按下事件

  •  0
  • V K  · 技术社区  · 7 年前

    我已经为树状视图创建了视图模型。还创建了它们的绑定。我创建了样式触发器,这样每当选择树视图项时,其背景都会发生变化。但背景没有改变。我处理了树状视图项的选中项和鼠标左键按下事件,以查看该项是否被选中。但这两个事件都没有发生。下面是XAML。

    <TreeView Grid.Row="0" x:Name="TreeViewLocalSystem"  BorderBrush="Transparent" Panel.ZIndex="0">
         <TreeView.ItemContainerStyle>
            <Style TargetType="TreeViewItem">
                <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
                <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter Property="Background" Value="{StaticResource TextBoxBackgroundColor}"></Setter>
                    </Trigger>
                    <Trigger Property="IsSelected" Value="False">
                        <Setter Property="Background" Value="Transparent"></Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TreeView.ItemContainerStyle>
        <TreeView.Resources>
            <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}"   DataType="{x:Type local:LocalTreeViewItemModel}">
                <TreeViewItem Header="{Binding Path=Text}"  Selected="TreeViewItem_Selected" HorizontalAlignment="Left" FontSize="{StaticResource MediumFontSize}" MouseLeftButtonDown="TreeViewItem_MouseLeftButtonDown" />
            </HierarchicalDataTemplate>
        </TreeView.Resources>
    </TreeView>
    

    我做错了什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   mm8    7 年前

    你可以处理 PreviewMouseLeftButtonDown 的事件 TreeViewItem :

    <TreeView Grid.Row="0" x:Name="TreeViewLocalSystem"  BorderBrush="Transparent" Panel.ZIndex="0">
        <TreeView.ItemContainerStyle>
            <Style TargetType="TreeViewItem">
                <EventSetter Event="PreviewMouseLeftButtonDown" Handler="TreeViewLocalSystem_PreviewMouseLeftButtonDown" />
                <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
                <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter Property="Background" Value="{StaticResource TextBoxBackgroundColor}"></Setter>
                    </Trigger>
                    <Trigger Property="IsSelected" Value="False">
                        <Setter Property="Background" Value="Transparent"></Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TreeView.ItemContainerStyle>
        <TreeView.Resources>
            <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}" DataType="{x:Type local:LocalTreeViewItemModel}">
                <TextBlock Text="{Binding Path=Text}" HorizontalAlignment="Left" FontSize="{StaticResource MediumFontSize}" />
            </HierarchicalDataTemplate>
        </TreeView.Resources>
    </TreeView>
    

    private void TreeViewLocalSystem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        //...
    }