gpt4 book ai didi

listview - 从ListView获取ClickedItem(使用MVVM)

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

我在Windows通用应用程序中有一个ListView,描述如下:


ListView ItemsSource="{Binding RecentlyAddedTvSeriesEpisodes}"
IsItemClickEnabled="True" SelectionMode="Single"
x:Name="listOfThings">

<!--Behaviour for item click-->
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="ItemClick">
<core:InvokeCommandAction Command="{Binding VideoItemClickCommand}"
CommandParameter="{Binding ElementName=listOfThings, Path=SelectedItem}"/>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>

<!--ListView template for all items-->
<ListView.ItemTemplate>
<DataTemplate>
...
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

如果单击某个项目,则其行为是调用中继命令并将ListView的 CommandParameter属性作为 SelectedItem传递。

如果ListView中未选择任何项目,则它将传递ItemClickEventArgs对象。由此,我可以轻松获得被点击的项目:
private async void ExecuteItemClickCommand(ItemClickEventArgs parameter)
{
//Get the clicked item
Model.VideoModel selectedVideo = parameter.ClickedItem as VideoModel;
}

如果在ListView中选择了一个项目,即使我单击其他项目而不是选定的项目,它也会将SelectedItem属性(直接是模型)传递给RelayCommand。

我想找出如何获取 ClikedItem ListView ,而不管 ListView中的所选项目如何

最佳答案

我不确定如何通过行为来解决问题,但是如何简单地在后面的代码中处理事件并从那里调用命令呢?您可能会保存3行代码和几kB的二进制大小...

关于listview - 从ListView获取ClickedItem(使用MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30082820/

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