Отображать удаленный поток данных в (инфраструктурной.Ультра-) сетке
Вопрос
возможно ли отобразить DataRow из DataTable, у которого есть DataRowState.Удалено?
Сценарий:Пользователь может редактировать некоторую поисковую информацию, которая представлена в таблице.Теперь он / она может удалять, изменять или вставлять несколько записей и, наконец, сохранять все свои изменения одним щелчком мыши в базе данных (при условии, что нет нарушения первичного ключа или какой-либо другой проблемы).
Теперь я хочу раскрасить разные строки в соответствии с их статусом редактирования, но удаленные строки немедленно исчезают.
Есть ли у вас какая-нибудь идея или другой подход к решению этой проблемы?
Решение
Редактировать:Я понял , что Grid
вы используете не DataGridView
.Для всех, кто хочет сделать то же самое с DataGridView
, они могут сделать следующее:
Создать
DataView
:DataView myDataView = new DataView(myDataTable, String.Empty, // add a filter if you need one "SortByColumn", DataViewRowState.OriginalRows | DataViewRowState.Deleted); myDataGridView.DataSource = myDataView;
Ручка
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"); }