0

我在这个问题上阅读了类似的问题和回复,并尝试了多种不同的方法来做到这一点,但都没有成功。记录以随机顺序显示在数据网格中,而不是按姓氏排序。先感谢您。

MyEntities theEntities = new MyEntities();

IEnumerable<NameTable> nameitems = (from myrow in theEntities.NameTable.AsEnumerable()
orderby myrow.NameID
select new NameTable
    {NameID = myrow.NameID,
    FirstName = myrow.FirstName,
    LastName = myrow.LastName});

ObservableCollection<NameTable> nameitemsOC = new ObservableCollection<NameTable>(nameitems);

return nameitemsOC;
4

3 回答 3

3

这可能是因为您按 NameID 而不是 LastName 订购...试试这个:

orderby myrow.LastName
于 2012-05-06T04:49:50.183 回答
2

我认为这应该做

IEnumerable<NameTable> nameitems = (from myrow in theEntities.NameTable.AsEnumerable()
     orderby myrow.LastName
     select new NameTable { 
       NameID = myrow.NameID, 
       FirstName = myrow.FirstName, 
       LastName = myrow.LastName 
     });
于 2012-05-06T04:50:08.077 回答
2

你排序NameID和不排序LastName

又是什么类型的theEntities.NameTable?也许您可以创建一个CollectionView,添加一个SortDescription并使其成为ItemsSource您的DataGrid.

ICollectionView myCollectionView = CollectionViewSource.GetDefaultView(theEntities.NameTable);

myCollectionView.SortDescriptions.Add(new SortDescription("LastName", ListSortDirection.Ascending));
于 2012-05-06T05:05:20.147 回答