0

DataRowState.Deleted を持つ DataTable から DataRow を表示することは可能ですか?

シナリオ: ユーザーは、グリッドに表示されるある種のルックアップ情報を編集できます。これで、複数のエントリを削除、変更、または挿入し、最終的にデータベースへの 1 回のクリックですべての変更を保存できます (主キー違反やその他の問題がないことを前提としています)。

編集ステータスに応じてさまざまな行を色付けしたいのですが、削除された行はすぐに消えます。

この問題を解決するためのアイデアや別のアプローチはありますか?

4

1 に答える 1

0

Grid編集:あなたが使用している は ではないことに気付きましたDataGridView。で同じことをしたい人DataGridViewは、次のことができます。

  1. を作成しますDataView

    DataView myDataView = 
          new DataView(myDataTable, 
                       String.Empty,       // add a filter if you need one
                       "SortByColumn",
                       DataViewRowState.OriginalRows | DataViewRowState.Deleted); 
    
    myDataGridView.DataSource = myDataView;
    
  2. ハンドルUserAddedRowUserDeletedRowおよびCellValueChangedイベント:

    private void myDataGridView_UserAddedRow
                (object sender, DataGridViewRowEventArgs e)
    {
        e.Row.DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#CCFF99");
    }
    
    private void myDataGridView_UserDeletedRow
                (object sender, DataGridViewRowEventArgs e)
    {
        e.Row.DefaultCellStyle.BackColor = ColorTranslator.FromHtml("#FFCC99");
    }
    
    private void myDataGridView_CellValueChanged
                (object sender, DataGridViewCellEventArgs e)
    {
       myDataGridView[e.ColumnIndex, e.RowIndex].DefaultCellStyle.BackColor 
                                              = ColorTranslator.FromHtml("#FFFF99");
    }
    
于 2009-09-11T18:15:04.457 に答える