BoldSignA modern eSignature application with affordable pricing. Sign up today for unlimited document usage!
<Syncfusion:SfDataGrid x:Name= "Data" AutoGenerateColumns="True" ItemsSource="{Binding BomDelseDataTable}" />
BomDelsDataTable.Columns.Item(OldNameColHeader).ColumnName = NewNameColHeader
Public Sub AddNewRecord(obj As Object)
TryCast(DirectCast(obj, Object())(1), SfDataGrid).Columns(0).HeaderText = DirectCast(DirectCast(obj, Object())(0), System.Windows.Controls.TextBox).Text
End Sub |
Me.datagrid.Columns("EmployeeID").HeaderText = "NewColumnName" |
Ok, I tryed your solution and works fine, but in my scenario, I need to work with the datatable and not with the control.
So there's a way to force the new datatable content to view? I've more than one property to set...
Public Sub AddNewRecord(obj As Object)
' (((object[])obj)[1] as SfDataGrid).Columns[0].HeaderText = ((System.Windows.Controls.TextBox)((object[])obj)[0]).Text;
Dim previousColumnName As String = TryCast(TryCast(DirectCast(obj, Object())(1), SfDataGrid).DataContext, DataTableClass).EmployeeDetails.Columns(2).ColumnName
' Change ColumnName of Name column in DataTableCollection
TryCast(TryCast(DirectCast(obj, Object())(1), SfDataGrid).DataContext, DataTableClass).EmployeeDetails.Columns(2).ColumnName = DirectCast(DirectCast(obj, Object())(0), System.Windows.Controls.TextBox).Text
Dim mappingName As String = TryCast(TryCast(DirectCast(obj, Object())(1), SfDataGrid).DataContext, DataTableClass).EmployeeDetails.Columns(2).ColumnName
Dim column = TryCast(DirectCast(obj, Object())(1), SfDataGrid).Columns.FirstOrDefault(Function(x) x.MappingName = previousColumnName)
' Remove column based on MappingName from GridColumns
TryCast(DirectCast(obj, Object())(1), SfDataGrid).Columns.Remove(TryCast(column, GridColumn))
' Insert a column based on MappingName with GridColumns
TryCast(DirectCast(obj, Object())(1), SfDataGrid).Columns.Insert(2, New GridTextColumn() With {
.MappingName = mappingName
})
End Sub |