使用 SelectionMode=None 在 ListView 中获取焦点列表项

Get focused list item in a ListView with SelectionMode=None

我有一个这样的列表:

    <ListView x:Name="MyList" SelectionMode="None" KeyDown="MyList_KeyDown">
        <ListView.Items>
            <x:String>Alfa</x:String>
            <x:String>Beta</x:String>
            <x:String>Gamma</x:String>
        </ListView.Items>
    </ListView>

在按键事件中,我想知道哪个项目处于焦点状态。但由于 SelectionMode 为 none,SelectedItem 为空。有什么办法可以解决这个问题吗?

您可以尝试这样的操作:

    private void MyList_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        var inFocus = FocusManager.GetFocusedElement() as ListViewItem;

        if(inFocus?.Content != null)
        {
            //Selected data is now in inFocus.Content
        }
    }