簡體   English   中英

樹狀視圖項目已選中,並且鼠標按鈕按下事件未觸發

[英]Tree View Item Selected and Mouse button down event not firing

我已經為樹視圖創建了視圖模型。 還創建了它們的綁定。 我創建了樣式觸發器,以便無論何時選擇樹視圖項目,都會更改其背景。 但是背景並沒有改變。我處理了選中的項目,並在樹狀視圖項目中單擊鼠標左鍵事件以查看是否選中了該項目。 但是這兩個事件都不會觸發。 以下是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>

我做錯了什么?

編輯:我注意到的另一件事是,當我單擊鼠標右鍵時會觸發MouseDown事件,但在單擊鼠標左鍵時不會觸發。

您可以為TreeViewItem處理PreviewMouseLeftButtonDown事件:

<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)
{
    //...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM