我正在尝试检测列表视图中的哪个项目是关注的,但我没有检测到事件。我正在为Xbox One UWP开发,所以我不能使用鼠标或键盘事件,只能使用焦点。
bar()
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" GotFocus="StackPanel_GotFocus" >
<StackPanel Name="Imagestack" Orientation="Horizontal">
<Image Source="{Binding Image}" Height="144" Width="256" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Title}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
答案 0 :(得分:0)
您应该注册ListView.GotFocus
事件。
事件参数中的OriginalSource
将是已获得焦点的ListViewItem
。然后,您可以使用ListViewItem.Content
检索项目内容。
XAML:
<ListView x:Name="list" GotFocus="list_GotFocus">
<ListView.ItemTemplate>...</ListView.ItemTemplate>
</ListView>
代码背后:
private void list_GotFocus(object sender, RoutedEventArgs e)
{
var focusedItem = (e.OriginalSource as ListViewItem)?.Content;
}
答案 1 :(得分:0)
您无需获取焦点状态即可从点击的ListViewItem获取数据,ItemClick
的{{1}}事件可能正是您所寻找的内容:
ListView