2013-08-21 58 views
0

這是單調乏味和有問題的。listview跳過整個控件焦點,直接將焦點設置到listviewitem

我想鍵盤導航(箭頭向下)直接從另一個控件listview.item。 由於一些曾經處理過這個問題的人已經預料到,整個listview控件首先獲取焦點,然後再一個向下箭頭鍵選擇該項目。

有一些解決方案可以解決這個問題,但是我必須把焦點帶回到另一個帶有向上箭頭鍵的控件中,這個控件還沒有明確的解決方案。

這個問題最近的做法是張貼在這裏:http://cytivrat.blogspot.com/2011/05/selecting-first-item-in-wpf-listview.html

但這無法解決擊鍵表現不同。

我期望更簡單和乾淨的解決方案,就好像設置一個屬性爲true/false來完成這項工作。

+1

如果如上述(認爲它會阻止你選擇的項目,但我可能是錯誤的),它不是那麼簡單......我認爲你必須從充當控制範圍內對其進行管理所有這些其他控件的容器,在關鍵/關閉事件中;手動跳過列表視圖並手動確定「上面」的控件。 –

+0

@JP_medevice權利。我誤解了你的問題。 –

+0

@Greg你是對的,除非我必須處理在列表視圖「下方」的項目。任何建議要解決? –

回答

-1

當您嘗試使用導航鍵時,似乎鍵盤並未聚焦。我只是用gridview處理這個問題,但this answer解決了這個問題,你需要做的就是使用Dispatcher設置焦點。在我的情況下,網格正在集中,但我無法使用箭頭鍵瀏覽行。

Dispatcher.BeginInvoke(
     DispatcherPriority.ContextIdle, 
     new Action(delegate() 
     { 
      ItemsFlowListBox.Focus(); 
      ItemsFlowListBox.ScrollIntoView(ItemsFlowListBox.SelectedItem); 
     })); 
+0

對不起,雖然這可能是沒有鍵盤焦點的人的好解決方案,但這不是我的問題。我的問題是listview在其本質上有兩個重點,一個是整個listview,然後是listview.item。我無法自然地直接獲得第二個 –