Здравствуйте, system.console, Вы писали:
SC>Hi all,
SC>подскажите пожалуйста, можно ли в качестве DataSorce использовать простой двумерный массив int [,] a = new int[n,m] ?
SC>И как это сделать, если да ?
SC>Ну или как заставить DataGridView полностью перерисовать/переформатировать/обновить все ячейки после того, как пользователь отредактировал одну из ячеек ?
https://learn.microsoft.com/ru-ru/dotnet/api/system.windows.forms.datagridview.columns?view=windowsdesktop-8.0
SC>>подскажите пожалуйста, можно ли в качестве DataSorce использовать простой двумерный массив int [,] a = new int[n,m] ?
SC>>И как это сделать, если да ?
SC>>Ну или как заставить DataGridView полностью перерисовать/переформатировать/обновить все ячейки после того, как пользователь отредактировал одну из ячеек ?
S>https://learn.microsoft.com/ru-ru/dotnet/api/system.windows.forms.datagridview.columns?view=windowsdesktop-8.0
я прошу прощения, но к сожалению я не понял какое отношение это имеет к моему вопросу ;(
Здравствуйте, system.console, Вы писали:
SC>Hi all,
SC>подскажите пожалуйста, можно ли в качестве DataSorce использовать простой двумерный массив int [,] a = new int[n,m] ?
SC>И как это сделать, если да ?
На сколько я могу судить, встроенных средств для этого нет.
Есть сторонние решения, например вот такое как в статье
Binding a Two Dimensional Array to a DataGrid
Там можно скачать исходники библиотеки и пример использования.
Но если вам удобнее может воспользоваться моим примером (я к предыдущему примеру привязал эту библиотеку)
http://files.rsdn.org/29231/WindowsFormsApp2.zip
Там всё довольно просто:
— создается и заполняется (если надо) массив
— он оборачивается в ArrayDataView. При этом можно указать имена столбцов (а иначе они сгенерируются автоматом в виде "-0-", "-1-", ...)
— передается в DataSource
DataView = new ArrayDataView(Matrix, Names);
dataGridView1.DataSource = DataView;
SC>Ну или как заставить DataGridView полностью перерисовать/переформатировать/обновить все ячейки после того, как пользователь отредактировал одну из ячеек ?
Изменения из DataGridView в массив отображаются автоматом
Если же нужно наоборот (т.е. вы кодом что-то поменяли в массиве и нужно чтобы DataGridView это отобразил), нужно вызвать Reset() у ArrayDataView
большое спасибо, это то, что мне нужно.
Жаль только, что приходится использовать сторонние библиотеки, но сделать тоже самое самому мне пока не под силу