【发布时间】:2017-01-25 00:35:00
【问题描述】:
我正在构建一个 Windows 窗体应用程序,它显示一个自定义类 Record 对象,并按照它们在我的 SortableBindingList<Record> record_list 中的存在时间对它们进行排序。当我启动我的程序时,为了测试,我已经在这个列表中加载了一些“虚拟”记录。
SortableBindingList<T> 取自 here。
public partial class Form1 : Form
{
public SortableBindingList<Record> record_list = new SortableBindingList<Record> { };
public static DataGridViewCellStyle style = new DataGridViewCellStyle();
public Form1()
{
InitializeComponent();
dataGridView.DataSource = record_list;
FillData(); //Temporary function to insert dummy data for demo.
dataGridView.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.cell_formatting);
this.Controls.Add(dataGridView);
this.dataGridView.RowHeadersVisible = false;
this.dataGridView.Sort(this.dataGridView.Columns["UserName"], ListSortDirection.Ascending);
start_timer();
}
添加“新”数据之前的结果(注意:这是自动按字母顺序排列的,特别是按字母顺序输入列表):
添加数据后的结果:
最后,点击“用户名”标题后的结果:
那么,每次更新我的数据源时,我必须强制进行排序吗?如果是这样,我该如何以这种方式调用排序?
提前感谢您的帮助!
【问题讨论】:
-
没有标准的
SortableBindingList<T>类,你指的是哪一个? -
这是一个自定义类,取自:stackoverflow.com/questions/23661195/…
-
嗯,这就是它不起作用的原因 - 这是一个非常基本的实现,典型的 SO 回答。
标签: c# .net winforms datagridview bindinglist