TSM*_*TSM 3 c# wpf mvvm mvvm-light
我正在使用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>
Run Code Online (Sandbox Code Playgroud)
当选择被更改时,我想将新选择的项目作为参数发送到命令.有没有办法做到这一点?我的印象是你可以使用EventToCommand做到这一点,但是当我尝试使用它们时,它表示版本4中不再支持它们,我找不到合适的解决方法.
谢谢.
当您指定CommandParameter="SelectedItemChanged"将参数指定为a时string.
如果你想传递SelectedItem作为参数,你应该这样做:CommandParameter="{Binding ElementName=TreeView,Path=SelectedItem}".