Свойство datagridview valuetype не меняется

У меня есть код для преобразования типов данных некоторых столбцов datagridview в двойной, так как они должны отображаться как валюта в моем представлении сетки. Однако, когда я запускаю код, значения по-прежнему отображаются как обычные десятичные числа. Я использую неправильный код, чтобы делать то, что хочу, или этого просто нельзя сделать? Я ценю любую помощь, которую вы можете мне оказать. Вот мой код:

For i = 0 To ds.Tables(0).Columns.Count -1
    InventoryDataGridView.ColumnCount = ds.Tables(0).Columns.Count
    InventoryDataGridView.Columns(1).ValueType = GetType(Date) 'this type changes
    InventoryDataGridView.Columns(2).ValueType = GetType(Double) 'this line and the line below do not occur in the grid view
    InventoryDataGridView.Columns(4).ValueType = GetType(Double)
    InventoryDataGridView.Columns(i).Name = InventoryColumns(i)
Next

person ZenLogic    schedule 12.03.2015    source источник


Ответы (1)


Используйте CellFormatting событие для отображения вашей валюты:

Private Sub InventoryDataGridView_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles InventoryDataGridView.CellFormatting
  If (e.ColumnIndex = 2) Then
    e.Value = String.Format("{0:$0.00}", e.Value)
    e.FormattingApplied = True
  End If
End Sub
person LarsTech    schedule 12.03.2015