|
Получение текущей строки DataGrid |
|
|
Очень часто требуется получить строку (DataRow), выделенную в DataGrid. Можно было бы просто получить строку из коллекции Rows объекта DataTable с индексом равным свойству CurrentRowIndex грида, но это будет работать, только если грид не отсортирован. Иначе индекс строки грида и индекс в коллекции Rows не совпадут.
Предлагаю вам 2 функции. Вункция GetCurrentRow возвращает текущую строку DataGrid'а, указанного в параметре функции. А функция GetRow позволяет получить строку с произвольным номером.
Public Function GetCurrentRow(ByVal Grid As DataGrid) As DataRow
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
Dim drv As DataRowView = CType(cm.Current, DataRowView)
Return drv.Row
End Function
Public Function GetRow(ByVal Grid As DataGrid, ByVal ID As Integer) As DataRow
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
Dim dv As DataView = CType(cm.List, DataView)
Dim drv As DataRowView = dv(ID)
Return drv.Row
End Function
|
|
|
|
|
|
|