2012-04-03 42 views
0

我在尋找:顯示ListVew SelectedItems在最前面

  1. 所有選定的項目要在上面顯示。

問題:

  • 我有填充增量模式的下拉菜單的自定義增量搜索控制。在下拉彈出窗口中,我有一個ListView,其ItemsSource設置爲未知類型的集合。 SelectionMode是多個

  • 的ItemsSource是IsReadOnly

我需要一個解決方案移動的SelectedItem之上,每當做出一個選擇。

+0

我會看看CollectionViewSource對ListViewItem的Selected屬性進行排序http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx它不會因爲它是ListViewItem的一個屬性,所以該類型是未知的。 – Paparazzi 2012-04-03 15:15:21

+0

當您說未知類型的集合時,是指集合類型未知或項目類型未知或兩者兼而有之。 – Paparazzi 2012-04-03 15:22:24

回答

0

對於我來解決這個問題,有各種方法。

1)在列表視圖中實現selectedindexchanged事件。當事件被調用時,檢查所有項目並將選定的項目移到頂部。

2)創建一個類,從例如的ObservableCollection。將列表視圖的選定屬性綁定到集合中對象的bool屬性(checkobject)。當(checkobject的)bool屬性發生變化時(使用propertychanged事件),將對象移到前面(在bool = true的後面)。這樣,你可以保留集合類中的實現。

3)如果集合是隻讀的,可以使用按布爾屬性排序。但是,這意味着需要知道對象

4)如果集合未知,可以使用自定義排序。一個參考是"Apply a custom sort rule to a wpf datagrid"

+0

對不起,我的ItemsSource是隻讀。我無法對itemssource進行任何更改。而且,當listview也不允許我從它的Items中進行任何添加/刪除操作,因爲它綁定了項目源 – gaurawerma 2012-04-03 09:11:23

+0

hm。那麼可以使用某種(缺陷性質)而不是移動物體(移動)? – weeyoung 2012-04-03 09:14:25

+0

爲真。但類型不知道我 – gaurawerma 2012-04-03 09:16:27