AddNew之后的DataView排序

时间:2012-03-13 20:28:42

标签: c# sorting combobox dataview

我正在尝试将初始未绑定条目添加到绑定的ComboBox中。我正在尝试一种非常类似于以下帖子的答案的方法:

How to insert 'Empty' field in ComboBox bound to DataTable

但是,主要区别在于我有严格的要求,不能在实际的数据表中添加一行(因为这是由其他组件使用)。所以,我的解决方案是将额外的行添加到dataview而不是datatable:

    public void FillVendorComboBox(DataSet1.VendorDataTable vendors)
    {
        //Create a custom view of the vendor table
        DataView view = new DataView(vendors);

        //Add a new row to the view with default values
        DataSet1.VendorRow vendorRow = (DataSet1.VendorRow)view.AddNew().Row;
        vendorRow.Name = "a";

        //Sort the view according to the vendor name
        view.Sort = vendors.NameColumn.ColumnName;

        //Bind the view to the combo box
        cbxVendor.DataSource    = view;
        cbxVendor.DisplayMember = vendors.NameColumn.ColumnName;
        cbxVendor.ValueMember   = vendors.IdColumn.ColumnName;
    }

问题是排序没有按预期工作。添加的值始终排序到ComboBox的末尾:

  • BC(绑定)
  • Shell(绑定)
  • a(已添加)< - 为什么这种排序到底?

另请注意,VendorRow.Name的数据类型为System.String,VendorRow.Id的数据类型为System.Int32。

0 个答案:

没有答案