MVVM Light -事件到命令&ListView - SelectedItem
本文关键字:ListView 命令 SelectedItem Light 事件 MVVM | 更新日期: 2023-09-27 18:16:52
我到处寻找这个问题的答案,但没有运气。我正在使用MVVM Light,我在我的一个视图中有一个ListView。我想找到一种方法来触发命令,当我的ListView中选定的项目被点击使用"事件命令"内置到MVVM光。在这一点上,我不知道如何去做这件事。如果您能给我任何帮助,我将不胜感激。
From my 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>
我不完全确定在ListView的EventToCommand应该去哪里。而且,我明白这段代码是完全不正确的。
从GameViewModel.cspublic ICommand ShowAdvCommand { get; private set; }
ShowAdvCommand = new RelayCommand(() => ExecuteShowAdvCommand(), () => true);
private void ExecuteShowAdvCommand()
{
System.Windows.MessageBox.Show("Firing");
}
在XAML中,您正在订阅Clicked
事件。更改SelectionChanged
事件以确保存在SelectedItem。
单击ListView并不总是选择一个项目。