DataGridView控件必须绑定到要排序的IBindingList对象

时间:2013-02-07 05:59:47

标签: c# .net datagridview invalidoperationexception

我有一个继承自DataGridView的自定义控件,我希望能够复制.cs文件,并将其放入任何项目中。我有一段代码无法移出Main.cs,而是转移到DataGridView.cs但是:

private void Main_Load(object sender, EventArgs e)
{
    dgv.Sort(dgv.Columns[0], ListSortDirection.Ascending);
    dgv.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
}

这是我尝试过的:

class MyDataGridView : DataGridView
{
    protected override void InitLayout()
    {
        base.InitLayout();
        Sort(Columns[0], ListSortDirection.Ascending);
        Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
    }

    // Lots of methods snipped
}

该程序立即在InvalidOperationException

上抛出Sort()
  

必须将DataGridView控件绑定到要排序的IBindingList对象。

如何将此代码移至DataGridView.cs

1 个答案:

答案 0 :(得分:1)

我就这样做了:

class MyDataGridView : DataGridView
{
    public MyDataGridView()
    {
        base.DataBindingComplete += Sort;
    }

    public void Sort(object sender, EventArgs e)
    {
        Sort(Columns[0], ListSortDirection.Ascending);
        Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
    }
}