(Infragistics.Ultra-)グリッドに削除されたDataRowを表示します

StackOverflow https://stackoverflow.com/questions/1411874

  •  05-07-2019
  •  | 
  •  

質問

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

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

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

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

役に立ちましたか?

解決

編集:使用している 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. UserAddedRow UserDeletedRow 、および 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");
    }
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top