простой способ - создать новый столбец, предложенный @the_lotus. Но если вы хотите сделать это трудным способом, тогда вам нужно создать пользовательскую таблицу, наследуя класс TypedTableBase(Of T). Возможно, вам придется переопределить/перегрузить/затенять дополнительные свойства/методы, которые будут показаны в следующем примере, однако вам следует начать работу.
Public Class StorageTable
Inherits TypedTableBase(Of StorageRow)
Protected Overrides Function CreateInstance() As DataTable
Return New StorageTable()
End Function
Protected Overrides Function NewRowFromBuilder(builder As DataRowBuilder) As DataRow
Return New StorageRow(builder)
End Function
Protected Overrides Function GetRowType() As Type
Return GetType(StorageRow)
End Function
End Class
Public Class StorageRow
Inherits DataRow
Protected Friend Sub New(builder As DataRowBuilder)
MyBase.New(builder)
End Sub
Public Property Tag() As Object
End Class
Простой тест:
Using table As New StorageTable()
table.Columns.Add("Column1", GetType(String))
table.Rows.Add("value1")
Dim row As StorageRow = DirectCast(table.Rows(0), StorageRow)
row.Tag = "value2"
Debug.WriteLine("Column1={0}, Tag={1}", row.Item(0), row.Tag)
End Using
Выход:
Column1 = value1, Tag = значение2
Вы можете добавить новый столбец и хранить его там. –