Obtener el número de línea de un DataGrid mediante su BindingContext
Artículo por Club Developers · 11 mayo 2006
1976 vistas
La propiedad DataGrid.BindingContext permite acceder al indexador del objeto BindingManagerBase subyacente y, por lo tanto, acceder a su propiedad BindingManagerBase.Count.
Para ver un ejemplo, vamos a implementar nuestra propia clase MiDataGrid derivada de DataGrid.
Y podemos usarlo de la forma siguiente:
Para ver un ejemplo, vamos a implementar nuestra propia clase MiDataGrid derivada de DataGrid.
vbnet
'... Public Class MiDataGrid Inherits DataGrid ' ... ' proppiedad pública que tendrá el número de líneas Public ReadOnly Property DataRowsCount() As Integer Get Return Me.currentDataRowsCount End Get End Property Private currentDataRowsCount As Integer ' sobrecarga de MyBase.OnDataSourceChanged Protected Overloads Overrides Sub OnDataSourceChanged(ByVal e As System.EventArgs) If Not (Me.DataSource Is Nothing) Then Me.currentDataRowsCount = Me.BindingContext(Me.DataSource, Me.DataMember).Count Else : Me.currentDataRowsCount = 0 End If MyBase.OnDataSourceChanged(e) End Sub End Class
Y podemos usarlo de la forma siguiente:
vbnet
Imports System.Text '... Private Sub DataGrid1DataSourceChanged(ByVal sender As Object, ByVal e As EventArgs) Dim sb As StringBuilder = New StringBuilder("Número de líneas: ") sb.Append(CType(sender, MiDataGrid).DataRowsCount.ToString()) Me.LComment.Text = sb.ToString() End Sub