2015-02-12 70 views
1

我試圖解決一個WPF列表視圖科拉姆#WPF ListView的排序,這工作得很好..但只有當我添加新的項目爲簡單對象:c。通過與listviewitems

這個工程:

listview_files.Items.Add(new { isdir = (String)ele.Element("isdir"), number = (int)ele.Element("id"), name = (String)ele.Element("name"), size = groesse, right = modes, date = (String)ele.Element("date") }); 

與:

listview_files.Items.SortDescriptions.Add(new SortDescription(sortBy, direction)); 

,但如果我添加的項目是這樣的:

ListViewItem myitem = new ListViewItem(); 
      myitem.Content=new { isdir = (String)ele.Element("isdir"), number = (int)ele.Element("id"), name = (String)ele.Element("name"), size = groesse, right = modes, date = (String)ele.Element("date") }; 
      myitem.ContextMenu = con2; 
      myitem.MouseDoubleClick += myitem_MouseDoubleClick; 

     listview_files.Items.Add(myitem); 

它將永諾排序相同的,有sortdirection或點擊式柱之間沒有差別(sortBy的價值,方向是永諾正確的) 我認爲這個問題是「內容」屬性,但我怎麼能強迫SortDescription使用用於排序的ListViewItem.Content Proberty?

回答

1

這是怎麼回事,因爲項目集」直接孩子是在第一種情況下對象本身,並在第二 - ListViewItem的-S。所以,如果你問它由number排序也不會找到一個ListViewItem此屬性。但是,它會找到Content.number,您可以使用它。但是,你爲什麼不使用綁定?這將是一個更自然的方式來做到這一點。

+0

我的意思是數據綁定(使用'ItemsSourse'屬性),所以你不會需要創建每個單獨的ListViewItem。 – 2015-02-12 14:30:47

+0

感謝您的回答納迪亞,「內容。」 + sortBy工作正常=)我tryed數據綁定使用的ItemSource(生成具有ListViewitems列表,但隨後其他的事情沒有工作了,例如Doubleclikevent) – user3600403 2015-02-12 14:35:43