我到处寻找答案,但没有运气。我正在使用 MVVM Light,我的一个视图中有一个 ListView。当使用 MVVM Light 中内置的“事件到命令”单击我的 ListView 中的选定项目时,我想找到一种方法来触发命令。在这一点上,我不知道如何去做。您能给我的任何帮助将不胜感激。
从我的 GameView.xaml
<ListView ItemsSource="{Binding Adventurers}"
Name="AdvListView"
ScrollViewer.CanContentScroll="False"
Background="Gray"
BorderBrush="Transparent"
Grid.Column="1"
Grid.ColumnSpan="3"
Grid.Row="2">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand Command="{Binding ShowAdvCommand}"
CommandParameter="{Binding SelectedItem,
ElementName=AdvListView}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.View>
<GridView>
<GridViewColumn Width="Auto" Header="Name" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Width="Auto" Header="Level" DisplayMemberBinding="{Binding Level}"/>
</GridView>
</ListView.View>
</ListView>
我不完全确定 EventToCommand 应该在 ListView 中的哪个位置。另外,我知道这段代码是完全不正确的。
来自 GameViewModel.cs
public ICommand ShowAdvCommand { get; private set; }
ShowAdvCommand = new RelayCommand(() => ExecuteShowAdvCommand(), () => true);
private void ExecuteShowAdvCommand()
{
System.Windows.MessageBox.Show("Firing");
}