Need help decifering a concept...


Author
Message
StrataFrame Team
S
StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
No problem Smile
StarkMike
StarkMike
StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)
Group: Forum Members
Posts: 436, Visits: 944
Thanks Ben! Good stuff!
StrataFrame Team
S
StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
In CSharp, the indexer properties cannot use the property name, but instead, they use the square brackets, so it looks like this instead:

this.cboDivisions.Properties.GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue)["LocationID"].ToString();

StrataFrame Team
S
StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)StrataFrame Developer (4.2K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
Hi Mike,

The reason you can butt the parenthasis together is because of the way the properties work.  It is the same concept as that of chaining together a bunch of dots, like this:

Me.TextBox1.Text

The first dot tells the "Me" variable that we are accessing one of its properties.  The second dot tells the TextBox that we are accessing one of its properties.

Now, there are special properties called "indexers."  An indexer is a "default" property that allows you to leave off the property name because it is understood.  So, When you execute the GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue) method, it returns an instance to a DataRowView.  If you were to put a dot at the end of those parenthasis, you would be telling the DataRowView that you want to access it's properties.  So, you could do this: Me.cboDivisions.Properties.GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue).Row which would return the DataRow wrapped by the DataRowView.  So, we combine this with the indexer property of the DataRowView item, which accepts a column name and returns the value within the field.  So, since the property is the indexer (its the "Item" propery), you can leave off the .PropetyName because it's understood.  So, the parenthasis are butted together because the ".Item" is understood, and therefore, left off.

Me.cboDivisions.Properties.GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue)("LocationID").ToString()

Me.cboDivisions.Properties.GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue).Item("LocationID").ToString()

StarkMike
StarkMike
StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)StrataFrame User (448 reputation)
Group: Forum Members
Posts: 436, Visits: 944
Can someone help me decifer this line of code? I saw it somewhere and have used it a couple of times but I'm not sure what the concept is called or why it works.



Me.cboDivisions.Properties.GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue)("LocationID").ToString



If this piece of code were to take up two lines this is what it would look like this



Dim row As DataRowView = Me.cboDivisions.Properties.GetDataSourceRowByKeyValue(Me.cboDivisions.EditValue)

Messagebox.Show(row("LocationID").ToString)



I'm referring to the way I can butt the set of parenthesis together.



Thanks for the help. Cool
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search