XAML检测listview项是否有焦点

时间:2017-02-22 12:06:56

标签: c# xaml uwp xbox-one

我正在尝试检测列表视图中的哪个项目是关注的,但我没有检测到事件。我正在为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>

2 个答案:

答案 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