2011-12-15 10 views
0
  1. フォームロード時にDataGridをバインドします。windowsアプリケーションを使用してendsitイベントでデータグリッドを更新する

    DataGrid1.DataSource = objBindinglist 
    
  2. は、編集後、私はデータグリッドをリフレッシュしたい

    DataGrid1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
    { 
        DataGridViewCell cell = null; 
    
        if (e.RowIndex > -1 && e.ColumnIndex > -1) 
        { 
        cell = ((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex]; 
        ((DataGridView)sender).Rows[e.RowIndex].Cells[sates.Index].Value = cell; 
        } 
    } 
    
  3. データグリッドで値を変更しました。

    private void DataGrid1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
    { 
        ((DataGridView)sender).DataSource = null; 
        var lstDataSource = 
        ((BindingList<person>)(((DataGridView)sender).DataSource)) 
        .OrderByDescending(x => x.sates).ToList(); 
    objBindinglist = new BindingList<person>(lstDataSource); 
    DataGrid1.DataSource = objBindinglist; 
    
  4. 1つのバインディングリストが先頭に宣言されている。

    BindingList<person> objBindinglist = new BindingList<person>(); 
    

質問: はそれが有界データグリッドにリフレッシュリストをバインドすることは可能です。 データソースがnullの場合、エラーが返されます。

答えて

0

グリッドがこのデータを必要とする可能性が最も高いため、EndEditイベントでDataSourceを変更するのは非常に困難です。

データを単純に解決することが目的ならば、組み込みソートメカニズムを使用するほうがずっと良いでしょう。グリッドを構成するときは、データを並べ替える列をSortColumnプロパティに設定し、SortOrderプロパティをSystem.Windows.Forms.SortOrder.Descendingに設定します。

編集が完了してもグリッドが正しく更新されない場合は、Sortメソッドを呼び出してください。

+0

終了編集イベントでエラーが発生します。 – user990897

+0

@ user990897:何のエラーが出ますか? –

+0

SetCurrentCellAddressCore関数へのリエントラントコールが発生するため、操作は無効です – user990897

関連する問題