题
我对此做了一些研究,似乎对数据绑定组合框进行排序的唯一方法是对数据源本身进行排序(在本例中为数据集中的数据表)。
如果是这种情况,那么问题就变成对数据表进行排序的最佳方法是什么?
组合框绑定在设计器中设置初始化使用
myCombo.DataSource = this.typedDataSet;
myCombo.DataMember = "Table1";
myCombo.DisplayMember = "ColumnB";
myCombo.ValueMember = "ColumnA";
我尝试过设置
this.typedDataSet.Table1.DefaultView.Sort = "ColumnB DESC";
但这没有什么区别,我尝试在 typedDataSet.Merge 调用之前和之后在控件构造函数中设置它。
其他提示
设置 Sort 属性后,请确保将 DefaultView 绑定到控件数据源,而不是表:
myCombo.DataSource = this.typedDataSet.Tables["Table1"].DefaultView;
myCombo.DisplayMember = "ColumnB";
myCombo.ValueMember = "ColumnA";
约什史密斯有一个 博客文章 这回答了这个问题,并且全部在 XAML 中完成。
数据是否需要位于 DataTable 中?使用 SortedList 并将其绑定到组合框将是一种更简单的方法。
如果需要使用 DataTable,可以使用 Select 方法检索 DataView 并传入排序参数。
DataView dv = myDataTable.Select("filter expression", "sort");
我意识到您已经选择了这个问题的答案,但我建议在您的表单上放置一个 DataView,将其绑定到您的 DataSet/DataTable,并在设计器中设置视图的排序。然后将组合框绑定到 DataView,而不是 DataSet/DataTable。
不隶属于 StackOverflow