在 WinUI3 中,我需要將焦點設定為 ListView 的第一項,以便用戶可以立即使用鍵盤。我執行以下操作:
listView.Focus(FocusState.Programmatic);
if (listView.Items.Count > 0)
{
listView.SelectedIndex = 0;
}
但只有串列視圖獲得焦點,而不是專案,我需要先點擊專案,然后才能用鍵盤上下移動。有沒有什么簡單的方法可以專注于串列視圖的第一項?
uj5u.com熱心網友回復:
出于某種原因,ListViewItem無法從第一次選擇,因此這里有一些解決此問題的方法:
ListViewItem lvi = listView.ContainerFromIndex(0) as ListViewItem;
if (lvi != null)
{
lvi.IsSelected = true;
lvi.Focus(FocusState.Programmatic);
}
else
{
var dispatcherQueue = DispatcherQueue.GetForCurrentThread();
dispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low,
() => {
lvi = listView.ContainerFromIndex(0) as ListViewItem;
if (lvi != null) {
lvi.IsSelected = true;
lvi.Focus(FocusState.Programmatic);
}
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/342521.html
