1

を使用してdatagridviewにデータを入力します

dataGridView1.DataSource = ListOfClasses

これにより、すべてが適切に入力されます。今、私は列をソート可能にするのが好きです。私が試した2つの列がlongとstringであったとしても、それらはソートされていないようです。データソースの後でこれを実行してみました(列が存在しないため、前に例外が発生しました)

foreach (DataGridViewColumn column in dataGridView1.Columns)
            {
                dataGridView1.Columns[column.Name].SortMode = DataGridViewColumnSortMode.Automatic;
            }

SQLでorderbyを使用して最初に並べ替えることができますが、列を使用して選択する柔軟性は依然として気に入っています。どうすればそれを有効にできますか

4

3 に答える 3

0
    void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {

        if (dataGridView1.SortOrder.ToString() == "Ascending") // Check if sorting is Ascending
        {
            dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name], ListSortDirection.Descending);
        }
        else
        {
            dataGridView1.Sort(dataGridView1.Columns[dataGridView1.SortedColumn.Name], ListSortDirection.Ascending);
        }
    }
于 2015-01-30T13:43:24.070 に答える
0

データ ソースは IBindingList である必要があります。

VS 2010 以降と EF を使用している場合は、".ToBindingList();" メソッドがあります。それはあなたのためにそれをします。

元:

dbContext.YourEntitycollection.Load();
yourBindingSource.DataSource = dbContext.YourEntitycollection.Local.ToBindingList();

このように、DataGrid での並べ替えは自動的に有効になります。

詳細については、http: //msdn.microsoft.com/en-us/data/jj682076.aspxを参照してください。

于 2014-06-16T12:24:58.633 に答える
0

ソート可能なBindingLisの実装のようなものを試しましたか

ここにそれを行う方法のチュートリアルがあります

http://www.codeproject.com/Articles/31418/Implementing-a-Sortable-BindingList-Very-Very-Quic

http://www.timvw.be/2007/02/22/presenting-the-sortablebindinglistt/

于 2012-11-27T21:50:52.090 に答える