у меня есть хитрый вопрос: у меня есть DataGrid, который заполняется (DataGrid.ItemsSource) таблицей доступа.
Как лучше всего отображать дополнительные столбцы для пользователя и сохранять изменения в этом столбце при (повторной) сортировке?
В моем случае дополнительный столбец - это CheckBoxColumn для пользователя, чтобы выбрать те строки в DataGrid, которые он хочет редактировать. Проверки исчезнут, если вы отсортируете DataGrid.
Код:
using (OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "Test.accdb"))
{
string strDbCmd = "SELECT * FROM Table1";
OleDbDataAdapter daOleDb = new OleDbDataAdapter(strDbCmd, connection);
DataTable dtResult = new DataTable(); // this is actually a global
daOleDb.FillSchema(dtResult, SchemaType.Source);
daOleDb.Fill(dtResult);
DataGrid1.ItemsSource = dtResult.DefaultView;
DataGridCheckBoxColumn dgCol = new DataGridCheckBoxColumn();
DataGrid1.Columns.Insert(0, dgCol);
}
Я не могу изменить dtResult (который на самом деле является глобальным), так как позже буду использовать его для обновления базы данных:
// Later on somewhere else:
OleDbDataAdapter daOleDb = new OleDbDataAdapter(strDbCmd, connection);
// [...]
daOleDb.Update(dtResult);
Теперь, конечно, я мог бы хранить все проверки в массиве bool или в чем-то еще, но есть ли умное решение для сохранения установленных проверок при сортировке DataGrid?
С наилучшими пожеланиями!