コードビハインドで CollectionViewSource にバインドしている ListView があります。
collectionView = CollectionViewSource.GetDefaultView(TableView.ItemsSource);
collectionView.SortDescriptions.Clear();
collectionView.SortDescriptions.Add(new SortDescription(propertyName, direction));
TableView は ListView で、propertyName は並べ替えたい列の名前で、方向は昇順または降順です。
XAML には、ItemSource の次のものが含まれます。
ItemsSource="{Binding Rows}"
コード ビハインドには、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 で以前に設定された並べ替えが失われます。