* Используя Powershell studio, но я мог бы работать с ответом на C #, поскольку он в основном такой же, за исключением синтаксиса.
Вот контекст:
Я ранее использовал:
$datagridviewInfo.Rows.Add("123", "456")
Для заполнения DataGridView, но впоследствии я заметил, что не могу экспортировать DataGridView в CSV, если он не использует «DataTable» в качестве источника данных.
Так что теперь я создаю DataTable и добавляю свои строки в этот объект. Теперь я могу успешно экспортировать в CSV.
ОДНАКО, я не могу сделать стиль своих клеток, как я мог раньше.
Если я сделаю это для проверки:
$button1_Click={
$RowNomPoste = $datagridviewInfo.Rows.Add("Poste", "$poste est inaccessible.")
$datagridviewInfo.Rows.Item($RowNomPoste).DefaultCellStyle.BackColor = "Red"
}
Это работает и дает мне эту строку, выделенную красным. Однако этот метод не использует DataTable, поэтому он бесполезен, так как позже я не могу экспортировать в CSV.
Теперь, если я попробую это:
$button2_Click={
$tableInfoPoste = New-Object system.Data.DataTable "TableInfoPoste"
$tableInfoPoste.Columns.Add("Propriété")
$tableInfoPoste.Columns.Add("Valeur")
$datagridviewInfo.DataSource = $tableInfoPoste
$RowNomPoste = $tableInfoPoste.Rows.Add("Poste", "$poste est inaccessible.")
$tableInfoPoste.Rows.Item($RowNomPoste).DefaultCellStyle.BackColor = "Red"
}
Добавляет строку, но не позволяет мне изменить ее DefaultCellStyle.
Выдает ошибку:
Cannont convert argument «index» («System.Data.DataRow») «get_Item» to type «System.Int32»: «
ERROR: Cannot convert the value «System.Data.DataRow» of type «System.Data.DataRow» to type «System.Int32».»»
Почему это работает при использовании первого метода добавления строк непосредственно в DataGridView, но НЕ при использовании DataTable?
Как я могу использовать DataTable, но по-прежнему правильно оформлять строку?
Очень ценится.