Why not simply set User.Username as the DataField of your BoundColumn-derived column? This syntax (prop1.prop2) is totally accepted.
RP On Wednesday, June 10, 2015 at 2:31:10 PM UTC+1, [email protected] wrote: > > Hi All, > > I'm using VB.NET and want to create a datagridview showing the value of a > child property (Datapropertyname = User.Username). > I found following code: > > Private Function EvaluateValue(ByRef myObj As Object, ByRef myProp As String) > As String > Dim Ret As String = "" > Dim Props As System.Reflection.PropertyInfo() > Dim PropA As System.Reflection.PropertyInfo > Dim ObjA As Object > > If myProp.Contains(".") Then > > myProp = myProp.Substring(0, myProp.IndexOf(".")) > Props = myObj.GetType().GetProperties() > > For Each PropA In Props > > ObjA = PropA.GetValue(myObj, New Object() {}) > If ObjA.GetType().Name = myProp Then > > Ret = EvaluateValue(ObjA, myProp.Substring(myProp.IndexOf(".") + 1)) > Exit For > > End If > > Next > > Else > > PropA = myObj.GetType().GetProperty(myProp) > Ret = PropA.GetValue(myObj, New Object() {}).ToString() > > End If > > Return Ret > End Function > > > But when I am using this with following code: > > Private Sub List_CellFormatting(sender As Object, e As > DataGridViewCellFormattingEventArgs) Handles List.CellFormatting > Dim Grid As DataGridView = CType(sender, DataGridView) > e.Value = Func.EvaluateValue(Grid.Rows(e.RowIndex).DataBoundItem, > Grid.Columns(e.ColumnIndex).DataPropertyName) > End Sub > > I get a null reference on ObjA. > > Anyone experienced with this? Or has someone another way to get the value of > the child property in the datagrid? > > > Benjamin > > > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/nhusers. For more options, visit https://groups.google.com/d/optout.
