获取WPF树视图的SelectedItem

本文关键字:SelectedItem 视图 WPF 获取 | 更新日期: 2023-09-27 18:18:21

我正在使用MVVM Light制作WPF应用程序,并且我有以下TreeView:

<TreeView x:Name="TreeView" 
                  Grid.Column="2" 
                  HorizontalAlignment="Left" Height="463.481" VerticalAlignment="Top" Width="263" 
                  ItemsSource="{Binding PackageView}" Margin="0,5.657,0,0" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectedItemChanged">
                    <i:InvokeCommandAction Command="{Binding Command}" 
                    CommandParameter="SelectedItemChanged"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <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>

当选择被改变时,我想将新选择的项作为参数发送给命令。有什么办法可以做到吗?我的印象是你可以用EventToCommand来做到这一点,但是当我尝试使用它们时,它说它们在版本4中不再支持,我找不到合适的解决方案。

谢谢。

获取WPF树视图的SelectedItem

当您指定CommandParameter="SelectedItemChanged"时,您将该参数指定为string

如果你想传递SelectedItem作为参数,你应该这样做:CommandParameter="{Binding ElementName=TreeView,Path=SelectedItem}" .