我有一個ListView這樣WPF ListView的鍵盤導航問題
的ListView:
---------
- 芒果
- 橙色
- 葡萄
- 葡萄
- 葡萄
- 蘋果
- 草莓
每當我瀏覽使用DownArrow中文,所述BlueHighlight暫停在第一葡萄,一個虛線矩形從第二葡萄開始,並在第三葡萄暫停,則BlueHighlight從蘋果恢復。這看起來很奇怪,當導航向上時它變得更奇怪。它從蘋果跳到橘子或芒果。
這是由於虛擬化嗎?
似乎只有重複的數據(葡萄)造成了問題。任何幫助?
我有一個ListView這樣WPF ListView的鍵盤導航問題
的ListView:
---------
每當我瀏覽使用DownArrow中文,所述BlueHighlight暫停在第一葡萄,一個虛線矩形從第二葡萄開始,並在第三葡萄暫停,則BlueHighlight從蘋果恢復。這看起來很奇怪,當導航向上時它變得更奇怪。它從蘋果跳到橘子或芒果。
這是由於虛擬化嗎?
似乎只有重複的數據(葡萄)造成了問題。任何幫助?
虛線矩形是您的鍵盤焦點。藍色矩形是您的選擇。
隨着您向下移動鍵盤焦點軌跡,您位於何處。然而,選擇跟蹤哪個項目被選中。當同一項目在列表中多次顯示時,選擇矩形只能顯示在其中一個矩形上。
爲了使您的工作方式符合您的期望,請將您的物品包裹在ObservableCollection中。因此,而不是:
coll.Add(fruit);
你會寫
coll.Add(new FruitWrapper(fruit));
在你ListBox
您ItemTemplate
可以包括單一ContentPresenter
呈現包裝(如<ContentPresenter Content="{Binding Fruit}" />
)裏面的水果。
您在ObservableCollection
中擁有相同的「葡萄」對象3次,我的意思是具有相同參考的對象。和Listbox混淆了這一點。每個元素應該是一個獨特的例子。
將藍色突出顯示爲選定的數據項。葡萄被複制,所以數據選擇不會改變。
虛線矩形是鍵盤焦點,它只關心表示數據項的ListViewItem
。
因此,有一個葡萄對象由3個ListViewItem
對象表示。
謝謝喬爾......我明白了...... – Amsakanna 2010-02-18 05:02:27
感謝您的回覆。今天我會嘗試一下。 – Amsakanna 2010-02-17 05:18:47
嘿雷, 這工作。感謝您爲解決問題提供解決方案。包括你的名字在我的應用程序中的「特別感謝」區域:)。等待它在網上發佈。 – Amsakanna 2010-02-18 05:01:58