One option that may work as well is creating a custom data source that inherits the BBS (BusinessBindingSource) then create child properties that expose other BBS classes. This is the approach that we have taken with our reports and I have not tested it on this grid. We ended up create a custom object model for all of our complicated grid interaction that has the logic to go and update the BOs. But what I am talking about above would be something like this:Public Class MyCustomersBBS
Inherits MicroFour.StrataFrame.Business.BusinessBindingSource
Public Sub New()
MyBase.New()
Me.BusinessObject = New CustomersBO()
End Sub
End Class
Public Class MyOrdersBBS
Inherits MicroFour.StrataFrame.Business.BusinessBindingSource
Public Sub New()
MyBase.New()
Me.BusinessObject = New OrdersBO()
End Sub
End Class
Public Class CustomersBO
Inherits MicroFour.StrataFrame.Business.BusinessLayer
Private Shared _OrdersBBS As New MyOrdersBBS
Public ReadOnly Property Orders() As MyOrdersBBS
Get
Dim lcFilter As String = "or_cust_pk=" & Me.cust_pk.ToString()
If Not _OrdersBBS.BusinessObject.Filter.Equals(lcFilter) Then
_OrdersBBS.BusinessObject.Filter = lcFilter
End If
Return _OrdersBBS
End Get
End Property
Private Sub CustomersBO_CurrentDataTableRefilled() Handles Me.CurrentDataTableRefilled
If Not Me.DesignMode Then
_OrdersBBS.BusinessObject.FillByParent(Me)
End If
End Sub
End Class
Then when you bind the CustomersBBS you will have the orders, etc. This will obviously take some "tweaking" and I have not tested it on a grid. But it might be a different approach to try. You will probably have to take into account the navigated event to apply the filter since this is associated with a grid. But it is just a thought.