2012-08-22 68 views
0

組合框我填寫組合框在我的項目是這樣WPF與實體framwork排序依據

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

我entty Framwork和C#的工作, 我如何才能顯示結果升序排序?

仍不能(我想了很多)我附上完整的代碼

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

爲什麼你不能只是'c.Cities.OrderBy(c => c.Name)'或類似的東西? – Zabavsky

+0

我不知道爲什麼,但它不起作用。我在WPF上工作,對不起,我忘了寫 – user1095549

+0

c.Cities是什麼?給我們一個類型聲明。 –

回答

1

繼後由@Ross,你還可以得到CollectionViewSource這種方式:

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

非常感謝你,它工作的很好,對延遲感謝抱歉 – user1095549

1

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

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; 
+0

+1。我會在任何一天通過'ItemsSource'的排序來訪問'CollectionViewSource'。 – code4life