我在WPF中对listView进行排序时遇到问题。可以使用绑定,但是我想继续使用ListViewItems进行操作。我的问题是ItemSource在默认情况下为null。如果我像下面这样设置itemsource,则它不是null,但是我的排序功能不起作用。
ObservableCollection<ListViewItem> allFormats = new ObservableCollection<ListViewItem>();
foreach (Item drd in formats) {
ListViewItem lvi = new ListViewItem();
// Section with ListViewItem manipulation. Set drd values,set tag etc...
allFormats.Add(lvi);
}
lvFormats.ItemsSource = (ICollectionView)CollectionViewSource.GetDefaultView(allFormats);
排序功能:
private void Sort(string sortBy,ListsortDirection direction)
{
CollectionView dataView = (CollectionView)CollectionViewSource.GetDefaultView(this.ItemsSource);
if (dataView != null)
{
dataView.SortDescriptions.Clear();
SortDescription sd = new SortDescription(sortBy,direction);
dataView.SortDescriptions.Add(sd);
dataView.Refresh();
}
}
在绑定此作品时,因为我直接在“集合”视图中有类。这里有currentitem = {System.Windows.Controls.ListViewItem: { cFormats = aaaa,cFormatID = 3,cFormatIDVersion = 6 }}
。在xaml中,我不使用绑定。