gpt4 book ai didi

c# - MVVM Light-命令和ListView的事件-SelectedItem

转载 作者:行者123 更新时间:2023-12-03 10:29:02 24 4
gpt4 key购买 nike

我四处寻找,没有运气的答案。我正在使用MVVM Light,并且在其中一个 View 中有一个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");
}

最佳答案

在XAML中,您正在订阅Clicked事件。更改为SelectionChanged事件以确保存在SelectedItem。

单击ListView并不总是选择一个项目。

关于c# - MVVM Light-命令和ListView的事件-SelectedItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16910540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com