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

标签 listview mvvm windows-8 winrt-xaml windows-8.1

我在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/

相关文章:

android - 为什么 ListView.getCount() 比 Cursor.getCount() 大 1

android listview复选框事件

c# - How to group checkboxes in treeview wpf mvvm when selection range is [0,1]

wpf - 在 Prism/Composite MVVM WPF 应用程序中使 View 模型激活感知

apache-flex - 在 Flex 中实现 MVVM (ViewModel) 模式的资源?

javascript - 当 console.dir 仅输出 "[object Object]"时,如何调试 IE10 中的 MSPointer 事件?

Android:在显示之前对Cursor中的SQL返回值进行算术

android - 我有两个 Activity 。我想将数据从第二个 Activity 发送到前一个 Activity 。第一个 Activity 有自定义 ListView

c# - 可以将 System.Windows.Forms 添加到 WinRT 项目吗?

xaml - Windows 8 中的评级控制