我有以下内容从实体框架4获取数据:
IQueryable<Exam> examsQuery =
entities.CreateQuery<Exam>("[Exams]").Include("Course");
exams =
new EntityObservableCollection<Exam>(entities, "Exams", examsQuery);
在我的viewmodel中,我有以下代码:
public IEnumerable<Exam> Exams { get { return exams; } }
在我的XAML中有以下内容:
<ListView ItemsSource="{Binding Exams}" SelectedItem="{Binding SelectedExam}"
SelectionChanged="ListViewSelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Code}" Header="ExamCode" Width="250"/>
<GridViewColumn DisplayMemberBinding="{Binding Desc}" Header="Desc" Width="150"/>
<GridViewColumn DisplayMemberBinding="{Binding Course.Code}" Header="Course" Width="150"/>
</GridView>
</ListView.View>
</ListView>
对我来说,问题是首先我希望:
1)ListView在ExamCode列上排序 2)如果例如从外部更改ExamCode,我希望它保持排序。
是否有一种简单的方法可以始终对列表视图进行排序?我环顾四周,根本无法找到解决方案。
由于
答案 0 :(得分:0)
使用ICollectionView:
public ICollectionView Exams
{
get
{
if (examsView == null)
{
examsView = CollectionViewSource.GetDefaultView(exams);
examsView.SortDescriptions.Add(new SortDescription("Code", ListSortDirection.Descending)); // your sort here
}
return examsView;
}
}