2012-11-21 24 views
0

在WPF中,我在列表視圖中選擇了多個項目。在代碼隱藏中,我使用ObservableCollection.SetItem()在索引2處插入了一個元素。我之前選擇的多個項目將被取消選擇。我怎樣才能在列表視圖中插入一個元素,同時不會丟失我選擇的多個項目? 下面的代碼觸發取消選擇所選項目。如何在不改變選定項目的情況下在列表視圖中插入元素

this.SetItem(index2, new student("name",age,"school")); 

任何幫助表示讚賞。謝謝

回答

0

其中之一,SetItem()不插入項目,它會取代它。要插入項目,請使用Insert()

至於多選,你最好實施一個可綁定的多選ListViewListView的一個問題是,SelectedItems不是DependencyProperty,所以它不能綁定到ViewModels或代碼中處理最可靠的事情。

如何實現一個很好的例子更好ListView可以發現Here.上有約束力的ListViews有能提供一些有益的思路,以及一個3部分組成的系列。

+0

我應該試試這個。感謝您的鏈接 – TheFrustratedProgrammer

+0

- >是否有解決此問題的其他解決方法?該項目在最後階段,儘可能我不想重新創建整個集合對象?謝謝 – TheFrustratedProgrammer

0

爲清單中的每個項目創建一個bool清單。

在插入新項目之前,請檢查每個現有項目並查看它是否被選中並將結果存儲在布爾列表中。

插入項目後,只需解析回布爾表並重新設置以前選擇的項目。

+0

你如何將選定的項目放回列表視圖? ive嘗試somethng像listview.selecteditems =列表<>但問題是,selecteditems屬性是隻讀的。謝謝 – TheFrustratedProgrammer

+0

嘗試myListView.Items [1] .Selected = true;或myListBox.SetSelected(index,true); – JuStDaN

相關問題