2015-02-12 74 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