如何将ObservableCollection OrderBy()传递给DataSet

我有一个ObservableCollection类,如下所示:

public ObservableCollection GetModules() { DataSet ds = StoreDbDataSet.ReadDataSet(); ObservableCollection modules = new ObservableCollection(); foreach (DataRow moduleRow in ds.Tables["Modules"].Rows) { modules.Add(new Module(moduleRow["ModelNumber"].ToString(), moduleRow["ParamName"].ToString(), (UInt16)moduleRow["ParamValue"], (UInt16)moduleRow["DefaultValue"], (UInt16)moduleRow["MaxValue"], (UInt16)moduleRow["MinValue"], (uint)moduleRow["Address"])); } return modules; } 

所以在我的用法中,我这样做了:

  private ObservableCollection myModulesList; private void RefreshModulesByOrder() { myModulesList = new ObservableCollection(sdb.GetModules().OrderBy(mod => mod.Address)); ModulesView = CollectionViewSource.GetDefaultView(myModulesList); ModulesView.Filter = obj => { var Module = (Module)obj; return SelectedProduct != null && SelectedProduct.ModelNumber == Module.ModelNumber; }; } 

现在由于某种原因,我需要将GetModules()更改为DataSet类型,如:

  public DataSet GetModules() { DataSet ds = StoreDbDataSet.ReadDataSet(); ObservableCollection modules = new ObservableCollection(); foreach (DataRow moduleRow in ds.Tables["Modules"].Rows) { modules.Add(new Module(moduleRow["ModelNumber"].ToString(), moduleRow["ParamName"].ToString(), (UInt16)moduleRow["ParamValue"], (UInt16)moduleRow["DefaultValue"], (UInt16)moduleRow["MaxValue"], (UInt16)moduleRow["MinValue"], (uint)moduleRow["Address"])); } return StoreDbDataSet.ReadDataSet(); } 

所以我更改了使用代码,如:

  private DataSet _ds; private void RefreshModules() { _ds = sdb.GetModules(); ModulesView = new ListCollectionView(_ds.Tables["Modules"].DefaultView) { Filter = obj => { var Module = obj as DataRowView; return SelectedProduct != null && SelectedProduct.ModelNumber == Module["ModelNumber"].ToString(); } }; } 

那么我应该如何修复代码来实现ModulesView By Order ? 提前致谢!