C#: DataViewGrid.DataSorce
От: system.console  
Дата: 06.06.24 15:21
Оценка:
Hi all,
подскажите пожалуйста, можно ли в качестве DataSorce использовать простой двумерный массив int [,] a = new int[n,m] ?
И как это сделать, если да ?

Ну или как заставить DataGridView полностью перерисовать/переформатировать/обновить все ячейки после того, как пользователь отредактировал одну из ячеек ?


ЗЫ. В C# абсолютный новичок
Отредактировано 06.06.2024 15:41 system.console . Предыдущая версия . Еще …
Отредактировано 06.06.2024 15:26 system.console . Предыдущая версия .
Re: C#: DataViewGrid.DataSorce
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.06.24 15:27
Оценка:
Здравствуйте, 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
и солнце б утром не вставало, когда бы не было меня
Re[2]: C#: DataViewGrid.DataSorce
От: system.console  
Дата: 06.06.24 15:40
Оценка:
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

я прошу прощения, но к сожалению я не понял какое отношение это имеет к моему вопросу ;(
Re: C#: DataViewGrid.DataSorce
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 07.06.24 11:14
Оценка: +1
Здравствуйте, 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
Re[2]: C#: DataViewGrid.DataSorce
От: system.console  
Дата: 17.06.24 11:30
Оценка:
большое спасибо, это то, что мне нужно.
Жаль только, что приходится использовать сторонние библиотеки, но сделать тоже самое самому мне пока не под силу
Re: C#: DataViewGrid.DataSorce
От: _FRED_ Черногория
Дата: 04.07.24 11:58
Оценка:
Здравствуйте, system.console, Вы писали:

SC>подскажите пожалуйста, можно ли в качестве DataSorce использовать простой двумерный массив int [,] a = new int[n,m] ?

SC>И как это сделать, если да ?

Читайте про IListSource и ITypedList.

SC>Ну или как заставить DataGridView полностью перерисовать/переформатировать/обновить все ячейки после того, как пользователь отредактировал одну из ячеек ?


Data binding overview вам в помощь. Ищущий да обрящет.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.