我有一個奇怪的「問題」。有人可以解釋爲什麼:問題綁定ListBox上的ObservableCollection <T>
如果我在ObservableCollection中有兩次(或更多時間)具有相同值的項目,那麼ListBox中這些值的選擇將無法正常工作?
事實上,當我點擊一個項目時(甚至在單個項目選擇中)ListBox正在做什麼:它從ObservableCollection集合中選擇第一個具有匹配值的項目。所以如果集合中有多個具有相同值的項目,則只會選擇第一個項目!
我有一個奇怪的「問題」。有人可以解釋爲什麼:問題綁定ListBox上的ObservableCollection <T>
如果我在ObservableCollection中有兩次(或更多時間)具有相同值的項目,那麼ListBox中這些值的選擇將無法正常工作?
事實上,當我點擊一個項目時(甚至在單個項目選擇中)ListBox正在做什麼:它從ObservableCollection集合中選擇第一個具有匹配值的項目。所以如果集合中有多個具有相同值的項目,則只會選擇第一個項目!
因爲你進入到集合的對象具有相同的引用這將是隱含的。您應該在每種情況下創建新的實例或覆蓋等於功能並編寫用於識別項目的邏輯。 WPF ListBox調用Object.Equal函數來識別項目是否相同。
希望這會有所幫助
您需要創建一個新對象來容納每個對象。
I.e.
MyCollection.Add(new MyContainer() { Data = myObject });
這樣,listbox將正確選擇對象,因爲它具有唯一的容器。
如果你使用的ViewModels
http://stackoverflow.com/questions/2272103/wpf-listview-keyboard-navigation-problem – Amsakanna 2010-03-16 10:16:35