User999999
User999999

Reputation: 2520

Get RepositoryItem (As Control) From Devexpress-GridviewCell

I'm using the devexpress Gridcontrol/Gridview which has 4 columns

Name: String
Description: String
Action: RepositoryItemLookUpEdit
Info: RepositoryItemHyperLinkEdit

Right now i want to write a function which updates the Action-column but only if the Value is contained in the datasource of the RepositoryItemLookUpEdit

So i started writing the code and this is how i far i got:

For i As Integer = 0 To GridViewDD.RowCount - 1
    Dim j As Integer = i
    Dim rItemlookup As RepositoryItemLookUpEdit = CType(GridViewDD.GetRow(i), DataRowView).Item("Actions")
    If CType(rItemlookup.DataSource, List(Of String)).Contains(curraction) Then
         // Do update of the datasource here (which works)
    End If
Next

GridControlDD.RefreshDataSource()

My problem lies at the line:

Dim rItemlookup As RepositoryItemLookUpEdit = CType(GridViewDD.GetRow(i), DataRowView).Item("Actions")

Question: How can i get the RepositoryItemLookUpEdit of a cell in devexpress (or its datasource)?

Note: The datasource of my gridview (GridViewDD) is a List And my datasource of the RepositoryItemLookUpEdit in Action is always a List(Of String)

Note 2: The contents of my datasource may vary from row to row

Upvotes: 0

Views: 1567

Answers (2)

nempoBu4
nempoBu4

Reputation: 6621

You can easily get your RepositoryItem from GridColumn.ColumnEdit property.
Here is example:

Dim rItemlookup As RepositoryItemLookUpEdit = GridViewDD.Columns("Action").ColumnEdit

'...

For i As Integer = 0 To GridViewDD.RowCount - 1
    Dim j As Integer = i

    If CType(rItemlookup.DataSource, List(Of String)).Contains(curraction) Then
         '... Do update of the datasource here (which works)
    End If
Next

GridControlDD.RefreshDataSource()

Upvotes: 1

User999999
User999999

Reputation: 2520

I've found it. thanks to 'many' hours of browsing the devexpress-forums. Using Gridviewinfo and GridDataRowInfo you can easily access the controls 'hidden' inside the grid

In my case the code looks as following

Dim gvInfo As GridViewInfo = GridViewDD.GetViewInfo()
Dim rInfo As GridDataRowInfo = gvInfo.RowsInfo.FindRow(i)
Dim rItemlookup As RepositoryItemLookUpEdit = rInfo.Cells(GridViewDragDrop.Columns.Item("Actions")).Editor

you can now use rItemlookup to change or access its properties.

I hope this may be of some use to anyone.

Upvotes: 0

Related Questions