我有一个 ListView,我在后面的代码中绑定到 CollectionViewSource:
collectionView = CollectionViewSource.GetDefaultView(TableView.ItemsSource);
collectionView.SortDescriptions.Clear();
collectionView.SortDescriptions.Add(new SortDescription(propertyName, direction));
TableView就是ListView,propertyName就是我要排序的列名,方向是升序或者降序。
XAML 对 ItemSource 具有以下内容:
ItemsSource="{Binding Rows}"
后面的代码对行有以下内容:
List<TableRow> rows;
public List<TableRow> Rows
{
get { return rows; }
set
{
rows = value;
UpdateProperty("Rows");
}
}
更新如下:
public void Update()
{
...generate a list of rows...
Rows = ...rows...
}
调用 Update 时会出现问题,列表视图会更新,但会丢失之前在 CollectionViewSource 上设置的排序。