Listview 从列表视图获取ClickedItem(使用MVVM)
我在Windows通用应用程序中有一个ListView,描述如下:Listview 从列表视图获取ClickedItem(使用MVVM),listview,mvvm,windows-8,winrt-xaml,windows-8.1,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--> <
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>
如果在列表视图中选择了某个项目,则即使我单击了其他项目而不是所选项目,该项目也会传递给RelayCommand和SelectedItem
属性(直接传递给模型)。
我想了解如何获得
列表视图的ClikedItem
,而不管列表视图中的选定项如何,我不确定如何通过该行为获得它,但简单地在代码隐藏中处理事件并从那里调用命令如何?您可能会节省3行代码和几kBs的二进制大小
private async void ExecuteItemClickCommand(ItemClickEventArgs parameter)
{
//Get the clicked item
Model.VideoModel selectedVideo = parameter.ClickedItem as VideoModel;
}