WPF ComboBox与实体框架orderBy

时间:2012-08-22 11:29:12

标签: c# sql wpf

我在我的项目中填写了ComboBox,就像这样

            CB_City.ItemsSource = c.Cities;
            CB_City.DisplayMemberPath = "city1";
            CB_City.SelectedValuePath = "city_id";
            CB_City.SelectedValue = 517;

我使用实体框架和c#, 如何按升序排序结果?

仍然不能(我正在尝试很多)我附上完整的代码

           using (MorEntities1  c = new MorEntities1())
        {
            CB_City.ItemsSource = c.Cities;
            CB_City.DisplayMemberPath = "city1";
            CB_City.SelectedValuePath = "city_id";
            CB_City.SelectedValue = 517;
        } 

3 个答案:

答案 0 :(得分:1)

您可以使用:CB_City.ItemsSource = c.Cities.OrderBy(c=>c.Text)CB_City.ItemsSource = c.Cities.OrderBy(c=>c.Text)

答案 1 :(得分:1)

另一种选择是CollectionViewSource使用SortDescription

var myViewSource = new CollectionViewSource { Source = c.Cities.ToList() };
myViewSource.SortDescriptions.Add(
  new SortDescription("YOUR_PROPERTY", ListSortDirection.Ascending)
);
CB_City.ItemsSource = myViewSource.View;

答案 2 :(得分:1)

除了@Ross的帖子之外,您还可以通过这种方式获得CollectionViewSource

var view = CollectionViewSource.GetDefaultView(CB_City.ItemsSource);
view.SortDescriptions.Add(new SortDescription("city1", 
    ListSortDirection.Ascending));